home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 2
/
SPACE - Library 2 - Volume 1.iso
/
apps
/
21
/
emacs
/
em.tut
< prev
next >
Wrap
Text File
|
1986-05-14
|
126KB
|
3,194 lines
MicroEMACS Screen Editor Tutorial
July 11, 1985
MicroEMACS Screen Editor Tutorial Page i
T✓Ta✓ab✓bl✓le✓e o✓of✓f C✓Co✓on✓nt✓te✓en✓nt✓ts✓s
1. Introduction 1
What is MicroEMACS? 1
Do the exercises 1
2. Basic Editing 2
Keystrokes--<e✓es✓sc✓c>, <c✓ct✓tr✓rl✓l> 2
Becoming acquainted with MicroEMACS 3
Before you begin 4
Beginning a document 5
3. Moving the Cursor 7
Moving the cursor backwards 7
Moving the cursor forwards 8
From line to line 8
Moving up and down by a screenful of text 8
Moving to beginning or end of text 9
Cursor movement strategy 9
Saving text and quitting 10
4. Killing and Deleting 12
Deleting versus killing 12
Erasing text to the right 12
Erasing text to the left 13
Erasing lines of text 14
Yanking back (restoring) text 14
Killing and deleting--exercises 14
Quitting 15
5. Block Killing and Moving Text 16
Moving one line of text 16
Multiple copying of killed text 16
Kill and move a block of text 17
6. Capitalization, Transposing, and Screen Redraw 19
Capitalization and lowercasing 19
Transpose characters 20
Screen redraw 20
7. Search and Reverse Search 21
Search forward 21
Reverse search 21
Search for portions of words 22
Cancel a command 22
8. Saving Text and Exiting 24
Write text to a new file 24
Save text and exit 25
9. Basic Editing--Conclusion and Summary 26
10. Advanced Editing 28
MicroEMACS Screen Editor Tutorial Page ii
11. Arguments 29
Arguments--default values 29
Selecting values 29
Deleting with arguments--an exception 30
Arguments--exercises 30
12. Buffers and Files 32
Definitions 32
File and buffer commands 32
Write and rename commands 33
Replace text in a buffer 33
Visiting another buffer 34
Move text from one buffer to another 35
Checking buffer status 35
Renaming a buffer 36
Delete a buffer 36
Summary 37
13. Windows 38
Window commands 39
Creating windows and moving between them 40
Enlarging and shrinking windows 40
Displaying text within a window 41
One buffer 42
Multiple buffers 43
Moving and copying text among buffers 43
Checking buffer status 43
Saving text from windows 44
Exercises 44
14. Keyboard Macros 47
Keyboard macro commands 47
Replacing a macro 47
Search and replace 48
15. Sending Commands to MS-DOS 49
16. Advanced Editing--Conclusion and Summary 50
17. Summary of Commands 52
MicroEMACS Screen Editor Tutorial Page 1
1✓1. I✓In✓nt✓tr✓ro✓od✓du✓uc✓ct✓ti✓io✓on✓n
This is a tutorial for the MWC86 interactive screen editor
MicroEMACS.
This tutorial is written for two types of reader: the one
who has never used a screen editor and needs a full introduction
to the subject, and the one who has used a screen editor before
but wishes to review specific topics.
W✓Wh✓ha✓at✓t i✓is✓s M✓Mi✓ic✓cr✓ro✓oE✓EM✓MA✓AC✓CS✓S?
MicroEMACS is an interactive screen editor. An editor
allows you to type text into your computer, name it, store it,
and recall it later for editing. _✓I_✓n_✓t_✓e_✓r_✓a_✓c_✓t_✓i_✓v_✓e means that
MicroEMACS will accept your editing command, execute it, display
the result for you immediately, and then wait for your next com-
mand. _✓S_✓c_✓r_✓e_✓e_✓n means that you can use nearly the entire screen of
your terminal as a writing surface: you can move your cursor up,
down, and around your screen to create or change text, much as
you move your pen up, down, and around a piece of paper.
These features, plus the others that will be described in
the course of this tutorial, make MicroEMACS a tool that is
powerful, yet easy to use. You can use MicroEMACS to create or
change computer programs, essays or letters, electronic mail mes-
sages, or any other type of text file.
The MWC86 version of MicroEMACS was adapted from a public-
domain program written by David G. Conroy, and this document is
based on the descriptions in his essay _✓M_✓i_✓c_✓r_✓o_✓E_✓M_✓A_✓C_✓S: _✓R_✓e_✓a_✓s_✓o_✓n_✓a_✓b_✓l_✓e
_✓D_✓i_✓s_✓p_✓l_✓a_✓y _✓E_✓d_✓i_✓t_✓i_✓n_✓g _✓i_✓n _✓L_✓i_✓t_✓t_✓l_✓e _✓C_✓o_✓m_✓p_✓u_✓t_✓e_✓r_✓s. MicroEMACS is derived from
the mainframe display editor EMACS, which was created at the Mas-
sachusetts Institute of Technology by Richard Stallman. EMACS is
popular among persons who work with computers, and is the parent
or grandparent of a number of well-known word processors.
D✓Do✓o t✓th✓he✓e e✓ex✓xe✓er✓rc✓ci✓is✓se✓es✓s
The following sections have exercises that illustrate each
topic being discussed. These exercises will help you understand
exactly how each feature works. We recommend that you type in
each exercise as you come to it in the text. Even if you under-
stand the concepts being discussed, working the exercises will
reinforce the lesson and will help you grow comfortable in using
MicroEMACS.
MicroEMACS Screen Editor Tutorial Page 2
2✓2. B✓Ba✓as✓si✓ic✓c E✓Ed✓di✓it✓ti✓in✓ng✓g
MicroEMACS is the MWC86 interactive screen editor.
_✓I_✓n_✓t_✓e_✓r_✓a_✓c_✓t_✓i_✓v_✓e means MicroEMACS accepts a command from you, ex-
ecutes it, displays the result on your terminal immediately, and
then waits for your next command.
_✓S_✓c_✓r_✓e_✓e_✓n means MicroEMACS allows you to use nearly the entire
screen of your terminal as a writing surface. You can move your
cursor up, down, and around the screen to enter text or make
changes, much as you move your pen up, down, and around a sheet
of paper.
The first half of this tutorial describes basic editing with
MicroEMACS. Mastering the commands described in the next few
subsections will allow you to create a document, store it, and
edit it thoroughly. Advanced techniques, such as assembling text
from several buffers, using windows, and using arguments, will be
covered in the second half.
K✓Ke✓ey✓ys✓st✓tr✓ro✓ok✓ke✓es✓s--<e✓es✓sc✓c>, <c✓ct✓tr✓rl✓l>
The MicroEMACS commands use c✓co✓on✓nt✓tr✓ro✓ol✓l characters and m✓me✓et✓ta✓a
characters.
Control characters use the _✓c_✓o_✓n_✓t_✓r_✓o_✓l key, which is marked C✓Ct✓tr✓rl✓l
on your keyboard; meta characters use the _✓e_✓s_✓c_✓a_✓p_✓e key, which is
marked E✓Es✓sc✓c.
On your keyboard, the _✓e_✓s_✓c_✓a_✓p_✓e key is located in the upper
left-hand corner of the keyboard, just above the _✓t_✓a_✓b key (the key
marked with horizontal arrows). The _✓c_✓o_✓n_✓t_✓r_✓o_✓l key is also located
at the left end of your keyboard, just below the _✓t_✓a_✓b key.
To see how the _✓c_✓o_✓n_✓t_✓r_✓o_✓l and _✓e_✓s_✓c_✓a_✓p_✓e keys actually work, con-
sult any reference manual that describes the a✓as✓sc✓ci✓ii✓i table. To use
them with MicroEMACS, however, only requires that you key them
correctly.
C✓Ct✓tr✓rl✓l is like the s✓sh✓hi✓if✓ft✓t key: hold it down _✓w_✓h_✓i_✓l_✓e you strike
the other key. Here, this will be represented with a hyphen; for
example, c✓co✓on✓nt✓tr✓ro✓ol✓l X✓X will be shown as follows:
<ctrl-X>
The E✓Es✓sc✓c key, on the other hand, works like an ordinary charac-
ter. You should strike it first, _✓t_✓h_✓e_✓n strike the letter charac-
ter you want. _✓E_✓s_✓c_✓a_✓p_✓e character codes will not be represented
with a hyphen; for example, e✓es✓sc✓ca✓ap✓pe✓e X✓X will be represented as:
MicroEMACS Screen Editor Tutorial Page 3
<esc>X
B✓Be✓ec✓co✓om✓mi✓in✓ng✓g a✓ac✓cq✓qu✓ua✓ai✓in✓nt✓te✓ed✓d w✓wi✓it✓th✓h M✓Mi✓ic✓cr✓ro✓oE✓EM✓MA✓AC✓CS✓S
Now you are ready for a few simple exercises that will help
you get a feel for how MicroEMACS works.
To begin, type the following command to MS-DOS:
me sample
Within a few seconds, your screen will have been cleared of
writing, the cursor will be positioned in the upper left-hand
corner of the screen, and a command line will appear at the bot-
tom of your screen.
Type the following text. You will need to type a carriage
return at the end of each line:
There is nothing which has yet been contrived by
man, by which so much happiness is produced as by
a good tavern or inn.
Notice how the text appeared on the screen character by character
as you typed it, much as it would appear on a piece of paper if
you were using a typewriter.
Now, type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>; that is type <c✓ct✓tr✓rl✓l-X✓X>, and then
type <c✓ct✓tr✓rl✓l-S✓S>. It does not matter whether you type capital or
lower-case letters. Notice that a message has appeared at the
bottom of your screen. This command has permanently stored, or
_✓s_✓a_✓v_✓e_✓d, what you typed. This text is now preserved until you give
the proper MS-DOS command to erase it.
Type the next few commands, which demonstrate some of the
tasks that MicroEMACS can perform for you. These commands will
be explained in full in the sections that follow; for now, it is
enough for you to get a feel for how MicroEMACS works.
Type <e✓es✓sc✓c><. Be sure that you type a less-than symbol '<'
instead of a comma. Notice that the cursor has returned to the
upper left-hand corner of the screen. Type <e✓es✓sc✓c>F✓F. The cursor
has jumped forward by one word, and is now between the words
T✓Th✓he✓er✓re✓e and i✓is✓s. Type <c✓ct✓tr✓rl✓l-N✓N>. Notice that the cursor has jumped
to the next line, and is now under the letter b✓b of the word b✓by✓y.
Type <c✓ct✓tr✓rl✓l-A✓A>. The cursor has jumped to the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g of the
second line of your text.
MicroEMACS Screen Editor Tutorial Page 4
Now, type <c✓ct✓tr✓rl✓l-K✓K>. The second line of text has disap-
peared, leaving an empty space. Type <c✓ct✓tr✓rl✓l-K✓K> again. The empty
space where the second line of text had been has now disappeared.
Type <e✓es✓sc✓c>>. Be sure to type a greater-than symbol '>', not
a comma. The cursor has jumped to the space just below the last
line of text. Now type <c✓ct✓tr✓rl✓l-Y✓Y>. The text that you erased a
moment ago has now been restored.
By now, you should be feeling more at ease with typing
MicroEMACS's _✓c_✓o_✓n_✓t_✓r_✓o_✓l and _✓e_✓s_✓c_✓a_✓p_✓e codes. The following sections
will explain what these commands mean. For now, exit from
MicroEMACS by typing <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>; when the message
Quit [y/n]?
appears, type y✓y. This will return you to MS-DOS.
B✓Be✓ef✓fo✓or✓re✓e y✓yo✓ou✓u b✓be✓eg✓gi✓in✓n
There are one or two potential sources of difficulty that
you should watch for as you begin to work with MicroEMACS. As
you begin a file, remember that MicroEMACS can handle only small
files efficiently.
If your file proves to be too large, either when it is
loaded or while you are working on it, you will see the following
message:
Cannot allocate XX bytes
where _✓X_✓X indicates the number of bytes that MicroEMACS cannot
allocate. When this happens, you should exit from MicroEMACS to
MS-DOS, by typing <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>; using any other command in an
attempt to save the changes you made to your text could damage
your original file severely. Then use your line editor to break
the file into several parts. Exiting to MS-DOS will be covered
in the next few pages.
Three sample texts have been included with MicroEMACS. They
are called t✓te✓ex✓xt✓t1✓1.m✓m, t✓te✓ex✓xt✓t2✓2.m✓m, and t✓te✓ex✓xt✓t3✓3.m✓m. Before you begin, you
should make working copies of these texts, so that if an accident
were to occur while you were working on this tutorial the master
copies of the sample texts would be preserved.
Make your working copies by typing the following commands
into your computer:
copy text1.m text1
copy text2.m text2
copy text3.m text3
MicroEMACS Screen Editor Tutorial Page 5
When you first invoke MicroEMACS, your computer will take a
moment to set it into operation. If you are going to edit a
large text, MicroEMACS may take a few seconds to load it into
memory.
You will know MicroEMACS set up and ready to go when the
following message appears at the bottom of your screen:
[Read XX lines]
where _✓X_✓X stands for the number of lines in your text file. If
you are creating a new text file, MicroEMACS will send you this
message:
[New file]
B✓Be✓eg✓gi✓in✓nn✓ni✓in✓ng✓g a✓a d✓do✓oc✓cu✓um✓me✓en✓nt✓t
You are now ready to invoke MicroEMACS and create a text
file. Type the following command line, which tells MicroEMACS
that you wish to edit the text called t✓te✓ex✓xt✓t1✓1:
me text1
This text has been included with your MWC86 compiler; there is no
need to retype it.
The computer will take a moment to set up the MicroEMACS
program. As soon as it does so, the following text will appear
on your screen:
From "Life on the Mississippi":
I know how a prize watermelon looks when it is sunning
its fat rotundity among the pumpkin vines; I know how to tell
when it is ripe without "plugging" it; I know how inviting
it looks when it is cooling itself in a tub of water under
the bed, waiting; I know how it looks when it lies on the
table in the sheltered great floor space between house and
kitchen, and the children gathered for the sacrifice and
their mouths watering; I know the crackling sound it makes
when the carving knife enters its end, and I can see the
split fly along in front of the blade as the knife cleaves
its way to the other end; I can see its halves fall apart
and display the rich red meat and the black seeds, and the
heart standing up, a luxury fit the elect; I know how a
boy looks behind a yard-long slice of that melon, and I
know how he feels; for I have been there.
When you type the MicroEMACS command and a file name, MicroEMACS
_✓c_✓o_✓p_✓i_✓e_✓s that text file into a special area in your computer to
make it available for editing. If you were creating a new text,
MicroEMACS Screen Editor Tutorial Page 6
as you did earlier with the text called s✓sa✓am✓mp✓pl✓le✓e, the screen would
have appeared blank.
In addition to this text appearing on your screen, your
cursor will have moved to the upper left-hand corner of the
screen, and the status line will appear near the bottom of your
screen as follows:
-- MicroEMACS -- text1 -- File: text1 ---------------------------
The word to the left, MicroEMACS, is the name of the program.
The word in the center, t✓te✓ex✓xt✓t1✓1, is the name of the _✓b_✓u_✓f_✓f_✓e_✓r that you
are using. (What a buffer is and how it is used will be covered
later.) The name to the right is the name of the text file that
you will be editing.
MicroEMACS Screen Editor Tutorial Page 7
3✓3. M✓Mo✓ov✓vi✓in✓ng✓g t✓th✓he✓e C✓Cu✓ur✓rs✓so✓or✓r
Now that you have created a text file, you will want to edit
it. The first step is to learn to move the cursor. Try out
these commands for yourself as they are described in the
following pages. That way, you will quickly acquire a feel for
handling MicroEMACS's commands.
You can use your _✓a_✓r_✓r_✓o_✓w _✓k_✓e_✓y_✓s with MicroEMACS. The arrow keys
are found on the keypad on the right-hand side of your keyboard.
If when you press the arrow keys, numbers appear in the text in-
stead of the cursor being moved, press the _✓n_✓u_✓m_✓b_✓e_✓r _✓l_✓o_✓c_✓k key, which
is the key marked N✓Nu✓um✓m L✓Lo✓oc✓ck✓k. That should solve your problem.
The following display shows the basic cursor movement com-
mands.
<c✓ct✓tr✓rl✓l-B✓B> Move back 1 space
<e✓es✓sc✓c>B✓B Move back 1 word
<c✓ct✓tr✓rl✓l-E✓E> Move to end of line
<c✓ct✓tr✓rl✓l-F✓F> Move forward 1 space
<e✓es✓sc✓c>F✓F Move forward 1 word
<c✓ct✓tr✓rl✓l-A✓A> Move to beginning of line
<c✓ct✓tr✓rl✓l-P✓P> Move to previous line
<c✓ct✓tr✓rl✓l-N✓N> Move to next line
<c✓ct✓tr✓rl✓l-V✓V> Move forward 1 screen
<e✓es✓sc✓c>V✓V Move back 1 screen
<e✓es✓sc✓c>< Move to beginning of text
<e✓es✓sc✓c>> Move to end of text
M✓Mo✓ov✓vi✓in✓ng✓g t✓th✓he✓e c✓cu✓ur✓rs✓so✓or✓r b✓ba✓ac✓ck✓kw✓wa✓ar✓rd✓ds✓s
The first set of commands move the cursor backwards. First,
type the _✓e_✓n_✓d _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c>> to move the cursor to the
bottom of the text. Be sure to type a greater-than symbol '>',
instead of a period.
Type the _✓b_✓a_✓c_✓k_✓s_✓p_✓a_✓c_✓e command <c✓ct✓tr✓rl✓l-B✓B>. As before, it does not
matter whether the letter is upper case or lower case. Note that
the cursor is now located just to the right of the period in your
last line of text. Type <c✓ct✓tr✓rl✓l-B✓B> again. The cursor has moved
one space to the left, and now is directly under the period.
MicroEMACS Screen Editor Tutorial Page 8
Type <e✓es✓sc✓c>B✓B. The cursor has moved one _✓w_✓o_✓r_✓d to the left, and
is now under the letter t✓t of the word t✓th✓he✓er✓re✓e. Type the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g
_✓o_✓f _✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-A✓A>. The cursor has jumped to the beginning
of the line, and is now under the letter k✓k of the word k✓kn✓no✓ow✓w.
M✓Mo✓ov✓vi✓in✓ng✓g t✓th✓he✓e c✓cu✓ur✓rs✓so✓or✓r f✓fo✓or✓rw✓wa✓ar✓rd✓ds✓s
Now practice moving the cursor forwards. Type the _✓f_✓o_✓r_✓w_✓a_✓r_✓d
command <c✓ct✓tr✓rl✓l-F✓F>. Note that the cursor has moved one space to
the right, and now is under the letter n✓n of the word k✓kn✓no✓ow✓w. Type
<e✓es✓sc✓c>F✓F. The cursor has moved one _✓w_✓o_✓r_✓d to the right, and now is
under the space between the words k✓kn✓no✓ow✓w and h✓ho✓ow✓w.
Type the _✓e_✓n_✓d _✓o_✓f _✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-E✓E>. The cursor has
jumped to the end of the line, and once again is resting to the
right of the period.
F✓Fr✓ro✓om✓m l✓li✓in✓ne✓e t✓to✓o l✓li✓in✓ne✓e
The next two commands move the cursor up and down the
screen. Type the _✓p_✓r_✓e_✓v_✓i_✓o_✓u_✓s _✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-P✓P>. Note that the
cursor has jumped from its position to the right of the period on
the last line of your text, to being under the second letter t✓t of
the word t✓th✓ha✓at✓t in the previous line.
Continue to type <c✓ct✓tr✓rl✓l-P✓P> until the cursor reaches the top
of the screen. Note that as you reached the first line in your
text, the cursor jumped from under the letter i✓i of the word i✓it✓t on
the second line, to being just right of the colon on the first
line of text. When you move your cursor up or down the screen,
MicroEMACS will try to keep it at the same position within each
line. If the line to which you are moving the cursor is not long
enough to have a character at that position, MicroEMACS will move
the cursor to the end of the line.
Now, practice moving the cursor back down the screen. Type
the _✓n_✓e_✓x_✓t _✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-N✓N>. Note that when the cursor jumped
to the next line, it returned to under the letter i✓i of the word
i✓it✓t. MicroEMACS remembered the cursor's position on the line, and
returned the cursor there when it jumped to a line long enough to
have a character in that position.
Continue pressing <c✓ct✓tr✓rl✓l-N✓N>. The cursor will move down the
screen, until it reaches the bottom of your text.
M✓Mo✓ov✓vi✓in✓ng✓g u✓up✓p a✓an✓nd✓d d✓do✓ow✓wn✓n b✓by✓y a✓a s✓sc✓cr✓re✓ee✓en✓nf✓fu✓ul✓l o✓of✓f t✓te✓ex✓xt✓t
MicroEMACS Screen Editor Tutorial Page 9
The next two cursor movement commands allow you to roll for-
ward or backwards by one screenful of text.
If you are editing a file with MicroEMACS that is too big to
be displayed on your screen all at once, MicroEMACS will display
the file in screen-sized portions (on most terminals, 22 lines at
a time). The _✓v_✓i_✓e_✓w commands <c✓ct✓tr✓rl✓l-V✓V> and <e✓es✓sc✓c>V✓V allow you to roll
up or down by one screenful of text at a time.
Type <c✓ct✓tr✓rl✓l-V✓V>. Note that your screen becomes empty. This
is because you have rolled forward by the equivalent of one
screenful of text, or 22 lines; however, because the text in this
example is only 16 lines long, rolling forward 22 lines just
empties the screen.
Now, type <e✓es✓sc✓c>V✓V. Notice that your text rolls back onto the
screen, and your cursor is positioned in the upper left-hand
corner of the screen, under the letter F✓F of the word F✓Fr✓ro✓om✓m.
M✓Mo✓ov✓vi✓in✓ng✓g t✓to✓o b✓be✓eg✓gi✓in✓nn✓ni✓in✓ng✓g o✓or✓r e✓en✓nd✓d o✓of✓f t✓te✓ex✓xt✓t
The last two cursor movement commands allow you to jump im-
mediately to the beginning or end of your text.
The _✓e_✓n_✓d _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c>> moves the cursor to the end
of your text. Type <e✓es✓sc✓c>>. Be sure to type a greater-than sym-
bol '>'; this symbol may have been placed nearly anywhere on your
keyboard, although on IBM-style keyboards it appears above the
period. Note that your cursor has jumped to the end of your
text.
The _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c>< will move the cursor
back to the beginning of your text. Type <e✓es✓sc✓c><. Be sure to
type a less-than symbol '<'; on IBM-style keyboards it appears
above the comma. Note that the cursor has jumped back to the up-
per left-hand corner of your screen.
These commands will move you immediately to the beginning or
the end of your text, regardless of whether the text is one page
long or 20.
C✓Cu✓ur✓rs✓so✓or✓r m✓mo✓ov✓ve✓em✓me✓en✓nt✓t s✓st✓tr✓ra✓at✓te✓eg✓gy✓y
When you edit a large text, you will have to move the cursor
often. This can be very time-consuming. Two rules will help you
save time by moving the cursor efficiently.
1. Plan your cursor movements so that you reach your target
with the fewest keystrokes possible.
MicroEMACS Screen Editor Tutorial Page 10
2. If you are a good typist, avoid using the <e✓es✓sc✓c> key if pos-
sible, because using the <e✓es✓sc✓c> key usually forces you to
lift your left hand from the home position.
Try the following exercises to sharpen your command of cur-
sor movement. Each exercise is followed by its solution. Be
sure not to look at the solution until you have at least at-
tempted to solve the problem. The exercises should be done in
order, because each one builds on the ones that come before.
1✓1. Your cursor should be in the upper left-hand corner of
the screen. If it is not, type <e✓es✓sc✓c><. Now, move the cursor to
the space just before the word c✓ch✓hi✓il✓ld✓dr✓re✓en✓n in line 8--you should be
able to do it with ten commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <c✓ct✓tr✓rl✓l-N✓N> seven times, then type <e✓es✓sc✓c>F✓F three
times.
2✓2. Move the cursor to under the letter n✓n of the word k✓kn✓ni✓if✓fe✓e
in line 10--you should be able to do it with four commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <c✓ct✓tr✓rl✓l-N✓N> twice, then <c✓ct✓tr✓rl✓l-F✓F> twice.
3✓3. Move the cursor to the right of the period on line 16--
you should be able to do it with two commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <e✓es✓sc✓c>>, then type <c✓ct✓tr✓rl✓l-B✓B>.
4✓4. Move the cursor to the space after the word f✓fa✓al✓ll✓l on line
12--you should be able to do it with six commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <c✓ct✓tr✓rl✓l-P✓P> four times, then type <e✓es✓sc✓c>F✓F
twice.
5✓5. Move the cursor to under the letter k✓k of the word
k✓ki✓it✓tc✓ch✓he✓en✓n in line 8--you should be able to do it with five com-
mands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <c✓ct✓tr✓rl✓l-A✓A>, then type <c✓ct✓tr✓rl✓l-P✓P> four times.
6✓6. Finally, move the cursor to under the letter M✓M of the
word M✓Mi✓is✓ss✓si✓is✓ss✓si✓ip✓pp✓pi✓i on line 1--you should be able to do it with
three commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <e✓es✓sc✓c><, type <c✓ct✓tr✓rl✓l-E✓E>, then type <e✓es✓sc✓c>B✓B.
S✓Sa✓av✓vi✓in✓ng✓g t✓te✓ex✓xt✓t a✓an✓nd✓d q✓qu✓ui✓it✓tt✓ti✓in✓ng✓g
MicroEMACS Screen Editor Tutorial Page 11
If you do not wish to continue working at this time, you
should _✓s_✓a_✓v_✓e your text, and then _✓q_✓u_✓i_✓t.
It is good practice to save your text file every so often
while you are working on it; then, if an accident occurs, such as
a power failure, you will not lose all of your work. You can
save your text with the _✓s_✓a_✓v_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>. Type
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>--that is, first type <c✓ct✓tr✓rl✓l-X✓X>, then type <c✓ct✓tr✓rl✓l-
S✓S>. Note that at the bottom of your screen the following message
has appeared:
[Wrote 16 lines]
The text file has again been saved to your computer's memory.
Note, too, that MicroEMACS will send you messages from time to
time; the messages enclosed in square brackets '[' ']' are for
your information, and do not mean that something is wrong. To
exit from MicroEMACS, type the _✓q_✓u_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>.
This will return you to MS-DOS.
MicroEMACS Screen Editor Tutorial Page 12
4✓4. K✓Ki✓il✓ll✓li✓in✓ng✓g a✓an✓nd✓d D✓De✓el✓le✓et✓ti✓in✓ng✓g
Now that you know how to move the cursor, you are ready to
edit your text. To return to MicroEMACS, type the command:
me text1
Within a moment, t✓te✓ex✓xt✓t1✓1 will have been restored to your screen.
By now, you have noticed that MicroEMACS is always ready to
insert material into your text; unless you type the <c✓ct✓tr✓rl✓l> or
<e✓es✓sc✓c> keys, MicroEMACS will assume that whatever you type is
meant to be text and will insert it onto your screen where your
cursor is positioned.
The simplest way to erase text is simply to position the
cursor to the right of the text you want to erase and backspace
over it. MicroEMACS, however, has a set of commands that allow
you to erase large amounts of text easily. These commands _✓k_✓i_✓l_✓l
and _✓d_✓e_✓l_✓e_✓t_✓e; the distinction is important, and will be explained
in a moment. The following display summarizes these commands:
<c✓ct✓tr✓rl✓l-D✓D> Delete 1 character to the right
<e✓es✓sc✓c>D✓D Kill 1 word to the right
<d✓de✓el✓l> Delete 1 character to the left
<e✓es✓sc✓c><d✓de✓el✓l> Kill 1 word to the left
<c✓ct✓tr✓rl✓l-K✓K> Kill rest of line
<c✓ct✓tr✓rl✓l-Y✓Y> Yank back (restore) killed text
D✓De✓el✓le✓et✓ti✓in✓ng✓g v✓ve✓er✓rs✓su✓us✓s k✓ki✓il✓ll✓li✓in✓ng✓g
It is important to distinguish between killing and deleting.
When text is _✓d_✓e_✓l_✓e_✓t_✓e_✓d, it is erased completely from memory;
however, when text is _✓k_✓i_✓l_✓l_✓e_✓d, it is moved into a temporary
storage area elsewhere in the computer. This storage area is
erased when you move the cursor and then kill additional text.
Until then, however, the killed text is saved. This aspect of
killing allows you to restore text that you killed accidentally,
and it also allows you to move or copy portions of text from one
position to another.
E✓Er✓ra✓as✓si✓in✓ng✓g t✓te✓ex✓xt✓t t✓to✓o t✓th✓he✓e r✓ri✓ig✓gh✓ht✓t
The first two commands to be presented erase text to the
_✓r_✓i_✓g_✓h_✓t.
MicroEMACS Screen Editor Tutorial Page 13
Type the _✓d_✓e_✓l_✓e_✓t_✓e command <c✓ct✓tr✓rl✓l-D✓D>. Note that the letter F✓F of
the word F✓Fr✓ro✓om✓m has been erased, and the rest of the line has
shifted one space to the left.
Now, type <e✓es✓sc✓c>D✓D. The rest of the word F✓Fr✓ro✓om✓m has been
erased, and the line has shifted three spaces to the left. Note
that the cursor is positioned under the _✓s_✓p_✓a_✓c_✓e before the word
L✓Li✓if✓fe✓e. Type <e✓es✓sc✓c>D✓D again. The word L✓Li✓if✓fe✓e has vanished along with
the _✓s_✓p_✓a_✓c_✓e that preceded it, and the line has shifted _✓s_✓i_✓x spaces
to the left.
Note that <c✓ct✓tr✓rl✓l-D✓D> _✓d_✓e_✓l_✓e_✓t_✓e_✓s text, but <e✓es✓sc✓c>D✓D _✓k_✓i_✓l_✓l_✓s text.
MicroEMACS is designed so that when it erases text, it does
so beginning at a point immediately to the _✓l_✓e_✓f_✓t of the cursor.
Therefore, if you wish to erase a word but wish to keep both
spaces around it, position your cursor directly under the first
character of the word and strike <e✓es✓sc✓c>D✓D. If you wish to erase a
word _✓a_✓n_✓d the space before it, position the cursor under the space
before you strike <e✓es✓sc✓c>D✓D.
E✓Er✓ra✓as✓si✓in✓ng✓g t✓te✓ex✓xt✓t t✓to✓o t✓th✓he✓e l✓le✓ef✓ft✓t
You can erase text to the _✓l_✓e_✓f_✓t by using the delete key
<D✓De✓el✓l>. This key is located just below the number pad on the
right side of your keyboard.
Be sure to note where it is, because it is most useful.
If your keyboard's <d✓de✓el✓l> key does not operate in the way
described below, you can also erase text to the left with the
command <c✓ct✓tr✓rl✓l-H✓H>.
To see how to erase text to the left, first type the _✓e_✓n_✓d _✓o_✓f
_✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-E✓E> to move the cursor to the right of the
colon on the first line of text. Type <d✓de✓el✓l>. Note that the
colon has vanished.
Type <e✓es✓sc✓c><d✓de✓el✓l>. The word M✓Mi✓is✓ss✓si✓is✓ss✓si✓ip✓pp✓pi✓i has disappeared, and
the cursor has moved to the second space following the word t✓th✓he✓e.
Move the cursor four spaces to the left, so that it is under
the letter t✓t of the word t✓th✓he✓e. Type <e✓es✓sc✓c><d✓de✓el✓l>. The word o✓on✓n has
vanished, along with the space that was immediately to the right
of it. As before, these commands erased text beginning im-
mediately to the _✓l_✓e_✓f_✓t of the cursor. The <e✓es✓sc✓c><d✓de✓el✓l> command can
be used to erase words throughout your text.
If you wish to erase a word to the left yet preserve both
spaces that are around it, position the cursor under the space
immediately to the right of the word and strike <e✓es✓sc✓c><d✓de✓el✓l>. If
you wish to erase a word to the left plus the space that im-
mediately follows it, position the cursor under the first letter
MicroEMACS Screen Editor Tutorial Page 14
of the _✓n_✓e_✓x_✓t word and then strike <e✓es✓sc✓c><d✓de✓el✓l>.
Note that typing <d✓de✓el✓l> _✓d_✓e_✓l_✓e_✓t_✓e_✓s text, but typing <e✓es✓sc✓c><d✓de✓el✓l>
_✓k_✓i_✓l_✓l_✓s text.
E✓Er✓ra✓as✓si✓in✓ng✓g l✓li✓in✓ne✓es✓s o✓of✓f t✓te✓ex✓xt✓t
Finally, the following command erases a lines of text: the
_✓k_✓i_✓l_✓l command <c✓ct✓tr✓rl✓l-K✓K>. This command erases a line of text,
beginning from immediately to the left of the cursor.
To see how this works, move the cursor to the beginning of
line 2. Now, strike <c✓ct✓tr✓rl✓l-K✓K>. Note that all of line 2 has
vanished, and been replaced with an empty space. Strike <c✓ct✓tr✓rl✓l-K✓K>
again. Note that the empty space has vanished, and the cursor is
now positioned at the beginning of what used to be line 3, under
the letter i✓i of the word i✓it✓ts✓s.
As its name implies, the <c✓ct✓tr✓rl✓l-K✓K> command _✓k_✓i_✓l_✓l_✓s the line of
text.
Y✓Ya✓an✓nk✓ki✓in✓ng✓g b✓ba✓ac✓ck✓k (r✓re✓es✓st✓to✓or✓ri✓in✓ng✓g) t✓te✓ex✓xt✓t
Remember that when material is killed, MicroEMACS has tem-
porarily stored it elsewhere. Thus, text that has been killed
can be returned to the screen by using the _✓y_✓a_✓n_✓k _✓b_✓a_✓c_✓k command
<c✓ct✓tr✓rl✓l-Y✓Y>. Type <c✓ct✓tr✓rl✓l-Y✓Y>. Note that all of line 2 is now
returned; the cursor, however, remains under the letter i✓i of i✓it✓ts✓s
in line 3.
K✓Ki✓il✓ll✓li✓in✓ng✓g a✓an✓nd✓d d✓de✓el✓le✓et✓ti✓in✓ng✓g--e✓ex✓xe✓er✓rc✓ci✓is✓se✓es✓s
To fix these distinctions in your mind, perform the next few
exercises. Work the exercises in order, as each exercise builds
on the ones that came before it, and try not to look at the solu-
tion until you have at least tried to solve the problem.
Before you begin, move your cursor back to the upper left-
hand corner of your screen by typing <e✓es✓sc✓c><.
1✓1. Erase the word s✓sh✓he✓el✓lt✓te✓er✓re✓ed✓d in line 7 and the space that
follows it.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor to the correct position, type
<c✓ct✓tr✓rl✓l-N✓N> six times; type <e✓es✓sc✓c>F✓F four times; and type <c✓ct✓tr✓rl✓l-F✓F>
once. Then type <e✓es✓sc✓c><d✓de✓el✓l>.
MicroEMACS Screen Editor Tutorial Page 15
2✓2. Erase the word c✓ch✓hi✓il✓ld✓dr✓re✓en✓n in line 8, and the space that
precedes it.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor to the correct position, type
<c✓ct✓tr✓rl✓l-N✓N>, then type <e✓es✓sc✓c>F✓F. Type <e✓es✓sc✓c>D✓D.
3✓3. Erase line 4.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move cursor, type <c✓ct✓tr✓rl✓l-P✓P> four times, then
<c✓ct✓tr✓rl✓l-A✓A>. Type <c✓ct✓tr✓rl✓l-K✓K>.
4✓4. Yank back line 4.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Type <c✓ct✓tr✓rl✓l-Y✓Y>.
Q✓Qu✓ui✓it✓tt✓ti✓in✓ng✓g
When you are finished, do not save the text. If you do so,
the undamaged copy of the text that you made earlier will be
replaced with the present damaged copy. Rather, use the _✓q_✓u_✓i_✓t
command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>. Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>. On the bottom
of your screen, MicroEMACS will respond:
Quit [y/n]?
Reply by typing y✓y and a carriage return. If you type n✓n,
MicroEMACS will simply return you to where you were in the text.
MicroEMACS will then return you to MS-DOS.
MicroEMACS Screen Editor Tutorial Page 16
5✓5. B✓Bl✓lo✓oc✓ck✓k K✓Ki✓il✓ll✓li✓in✓ng✓g a✓an✓nd✓d M✓Mo✓ov✓vi✓in✓ng✓g T✓Te✓ex✓xt✓t
As noted above, text that is killed is stored temporarily
within the computer. Killed text, however, may be yanked back
onto your screen, and not necessarily in the spot where it was
originally killed. This feature allows you to move text from one
position to another.
The following table summarizes the commands used to kill a
block of text and move it:
<c✓ct✓tr✓rl✓l-K✓K> Kill text to end of line
<c✓ct✓tr✓rl✓l-@> Set mark
<c✓ct✓tr✓rl✓l-W✓W> Kill block of text
<c✓ct✓tr✓rl✓l-Y✓Y> Yank back text
M✓Mo✓ov✓vi✓in✓ng✓g o✓on✓ne✓e l✓li✓in✓ne✓e o✓of✓f t✓te✓ex✓xt✓t
To test these commands, invoke MicroEMACS for the text t✓te✓ex✓xt✓t1✓1
by typing the following command:
me text1
When MicroEMACS appears, the cursor will be positioned in the up-
per left-hand corner of the screen.
To move the first line of text, begin by typing the _✓k_✓i_✓l_✓l
command <c✓ct✓tr✓rl✓l-K✓K> twice. Now, press <e✓es✓sc✓c>>, to move the cursor
to the bottom of text. Finally, yank back the line by typing
<c✓ct✓tr✓rl✓l-Y✓Y>. The line that reads
From "Life on the Mississippi":
is now at the bottom of your text.
Note that your cursor has moved to the beginning of the
blank line _✓a_✓f_✓t_✓e_✓r the line you yanked back.
M✓Mu✓ul✓lt✓ti✓ip✓pl✓le✓e c✓co✓op✓py✓yi✓in✓ng✓g o✓of✓f k✓ki✓il✓ll✓le✓ed✓d t✓te✓ex✓xt✓t
When text is yanked back onto your screen, it is _✓n_✓o_✓t deleted
from the computer. Rather, it is simply _✓c_✓o_✓p_✓i_✓e_✓d back onto the
screen. This means that killed text can be reinserted into the
text more than once. To see how this is done, return to the top
of the text by typing <e✓es✓sc✓c><. Then type <c✓ct✓tr✓rl✓l-Y✓Y>. The line you
just killed now appears twice on your screen.
MicroEMACS Screen Editor Tutorial Page 17
Note that the killed text will not be erased from its tem-
porary storage until you move the cursor and then kill additional
text. If you kill several lines or portions of lines in a row,
all of the killed text will be stored in the buffer; if you are
not careful, you may yank back a jumble of accumulated text.
K✓Ki✓il✓ll✓l a✓an✓nd✓d m✓mo✓ov✓ve✓e a✓a b✓bl✓lo✓oc✓ck✓k o✓of✓f t✓te✓ex✓xt✓t
If you wish to kill a block of text, you can either type the
_✓k_✓i_✓l_✓l command <c✓ct✓tr✓rl✓l-K✓K> repeatedly to kill the block one line at a
time, or you can use the _✓b_✓l_✓o_✓c_✓k _✓k_✓i_✓l_✓l command <c✓ct✓tr✓rl✓l-W✓W>. To use
this command, you must first set a _✓m_✓a_✓r_✓k on the screen, an in-
visible character that acts as a guidepost to the computer. The
mark is set with the _✓m_✓a_✓r_✓k command <c✓ct✓tr✓rl✓l-@>.
Once the mark is set, you must move your cursor to the other
end of the block of text you wish to kill, and then strike <c✓ct✓tr✓rl✓l-
W✓W>. The block of text will be erased, and will be ready to be
yanked back elsewhere.
Try this out on t✓te✓ex✓xt✓t1✓1. Type <e✓es✓sc✓c>< to move the cursor to
the upper left-hand corner of the screen. Then type the _✓s_✓e_✓t _✓m_✓a_✓r_✓k
command <c✓ct✓tr✓rl✓l-@>. By the way, be sure to type a '@', not a '2'.
MicroEMACS will respond with the message
[Mark set]
at the bottom of your screen. Now, move the cursor down four
lines, and type <c✓ct✓tr✓rl✓l-W✓W>. Note how the block of text you marked
out has disappeared.
Move the cursor to the bottom of your text. Type <c✓ct✓tr✓rl✓l-Y✓Y>.
The killed block of text has now been reinserted.
When you yank back text, be sure to position the cursor at
the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g of the line _✓b_✓e_✓l_✓o_✓w where you want the text to be
yanked back. This will ensure that the text will be yanked back
in the proper place, and the cursor will not be moved when the
text reappears.
To try this out, move your cursor up four lines. Be careful
that the cursor is at the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g of the line. Now, type
<c✓ct✓tr✓rl✓l-Y✓Y> again. Note that the text reappeared _✓a_✓b_✓o_✓v_✓e where the
cursor was positioned, and that the cursor was not moved from its
position at the beginning of the line--which is not what would
have happened had you positioned it in the middle or at the end
of a line.
Although the text you are working with has only 16 lines,
you can move much larger portions of text, using only these three
commands. Remember, too, that you can use this technique to
duplicate large portions of text at several positions, to save
yourself considerable time in typing and reduce the number of
MicroEMACS Screen Editor Tutorial Page 18
possible typographical errors.
MicroEMACS Screen Editor Tutorial Page 19
6✓6. C✓Ca✓ap✓pi✓it✓ta✓al✓li✓iz✓za✓at✓ti✓io✓on✓n, T✓Tr✓ra✓an✓ns✓sp✓po✓os✓si✓in✓ng✓g, a✓an✓nd✓d S✓Sc✓cr✓re✓ee✓en✓n R✓Re✓ed✓dr✓ra✓aw✓w
The next commands perform a number of useful tasks that will
help with your editing. They are as follows:
<e✓es✓sc✓c>C✓C Capitalize a word
<e✓es✓sc✓c>L✓L Lowercase a word
<e✓es✓sc✓c>U✓U Uppercase a word
<c✓ct✓tr✓rl✓l-T✓T> Transpose characters
<c✓ct✓tr✓rl✓l-L✓L> Redraw screen
Before you begin this section, destroy the old text on your
screen with the _✓q_✓u_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>, and read into
MicroEMACS a fresh copy of the text, as you did earlier.
C✓Ca✓ap✓pi✓it✓ta✓al✓li✓iz✓za✓at✓ti✓io✓on✓n a✓an✓nd✓d l✓lo✓ow✓we✓er✓rc✓ca✓as✓si✓in✓ng✓g
MicroEMACS has several commands that can automatically capi-
talize words or make them all upper case or lower case.
Move the cursor to the letter w✓w of the word w✓wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n on
line 2. Type the _✓c_✓a_✓p_✓i_✓t_✓a_✓l_✓i_✓z_✓e command <e✓es✓sc✓c>C✓C. The word is now
capitalized, and the cursor is now positioned under the space
after it. Move the cursor back so that it is under the letter m✓m
in W✓Wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n. Press <e✓es✓sc✓c>C✓C again. Note that the word is now
spelled W✓Wa✓at✓te✓er✓rM✓Me✓el✓lo✓on✓n. When you press <e✓es✓sc✓c>C✓C, MicroEMACS will capi-
talize the _✓f_✓i_✓r_✓s_✓t letter the cursor meets.
MicroEMACS can also change a word to all upper case or all
lower case. (There is very little need for a command that will
change only the first character of an upper-case word to lower
case, so it is not included.)
Move the cursor so that it is again to the left of the word
W✓Wa✓at✓te✓er✓rM✓Me✓el✓lo✓on✓n. It does not matter if the cursor is directly under W✓W
or under the space to its left; therefore, you can capitalize or
lowercase a number of words in a row without having to move the
cursor.
Type the _✓u_✓p_✓p_✓e_✓r_✓c_✓a_✓s_✓e command <e✓es✓sc✓c>U✓U. The word is now spelled
W✓WA✓AT✓TE✓ER✓RM✓ME✓EL✓LO✓ON✓N, and the cursor has jumped to the space after the
word.
Again, move the cursor to the left of the word W✓WA✓AT✓TE✓ER✓RM✓ME✓EL✓LO✓ON✓N.
Type the _✓l_✓o_✓w_✓e_✓r_✓c_✓a_✓s_✓e command <e✓es✓sc✓c>L✓L. The word has changed back to
w✓wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n. Now, move the cursor to the left of the word L✓Li✓if✓fe✓e on
line 1. Type <e✓es✓sc✓c>L✓L once again. Notice that the quotation mark
is not affected by the command, but the letter L✓L is now lower
case. <e✓es✓sc✓c>L✓L not only shifts a word that is all upper case to
lower case: it can also un-capitalize a word.
MicroEMACS Screen Editor Tutorial Page 20
Note that the _✓u_✓p_✓p_✓e_✓r_✓c_✓a_✓s_✓e and _✓l_✓o_✓w_✓e_✓r_✓c_✓a_✓s_✓e commands will stop at
the first point of punctuation they encounter after the first
letter they find; therefore, if you wish to change the case of a
word with an apostrophe in it, you must type the appropriate com-
mand twice.
T✓Tr✓ra✓an✓ns✓sp✓po✓os✓se✓e c✓ch✓ha✓ar✓ra✓ac✓ct✓te✓er✓rs✓s
MicroEMACS allows you to reverse the position of two charac-
ters, or _✓t_✓r_✓a_✓n_✓s_✓p_✓o_✓s_✓e them, with the _✓t_✓r_✓a_✓n_✓s_✓p_✓o_✓s_✓e command <c✓ct✓tr✓rl✓l-T✓T>.
Move the cursor to the middle of a line and type <c✓ct✓tr✓rl✓l-T✓T>.
Note that the character under which the cursor was positioned has
been transposed with the character immediately to its _✓l_✓e_✓f_✓t. Type
<c✓ct✓tr✓rl✓l-T✓T> again. The characters are now returned to their
original order.
S✓Sc✓cr✓re✓ee✓en✓n r✓re✓ed✓dr✓ra✓aw✓w
Occasionally, while you are editing you may interrupt
MicroEMACS to invoke another program, such as an electronic cal-
culator or a clock. When you exit from that program, you may
find that it has left material on your screen and scrambled it.
Although this extraneous material will _✓n_✓o_✓t be recorded into your
text, you will need to redraw your screen in order to continue to
edit.
The _✓r_✓e_✓d_✓r_✓a_✓w _✓s_✓c_✓r_✓e_✓e_✓n command <c✓ct✓tr✓rl✓l-L✓L> will redraw your screen
to the way it was before the extraneous material was written onto
it.
Type <c✓ct✓tr✓rl✓l-L✓L>. Notice how the screen flickers and the text
is rewritten. Had your screen been spoiled by extraneous
material, that material would have been erased and the original
text rewritten.
MicroEMACS Screen Editor Tutorial Page 21
7✓7. S✓Se✓ea✓ar✓rc✓ch✓h a✓an✓nd✓d R✓Re✓ev✓ve✓er✓rs✓se✓e S✓Se✓ea✓ar✓rc✓ch✓h
When you edit a large text, you may wish to change par-
ticular words or phrases. To do this, you can roll through the
text and read each line to find them; or you can have MicroEMACS
find them for you. The following display summarizes the
MicroEMACS search commands:
<c✓ct✓tr✓rl✓l-S✓S> Search forward
<c✓ct✓tr✓rl✓l-R✓R> Search backwards
<c✓ct✓tr✓rl✓l-G✓G> Cancel a search command
S✓Se✓ea✓ar✓rc✓ch✓h f✓fo✓or✓rw✓wa✓ar✓rd✓d
To begin, type the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c>< to move
the cursor to the upper left-hand corner of your screen. Now,
type the _✓s_✓e_✓a_✓r_✓c_✓h command <c✓ct✓tr✓rl✓l-S✓S>. MicroEMACS will respond by
prompting with the message
Search:
at the bottom of the screen.
Type in the words b✓be✓ee✓en✓n t✓th✓he✓er✓re✓e, then press the carriage
return. Notice that the cursor has jumped to the period after
the word t✓th✓he✓er✓re✓e in the last line of your text. MicroEMACS
searched for the words b✓be✓ee✓en✓n t✓th✓he✓er✓re✓e, found them, and moved the cur-
sor there.
If the word you were searching for was not in your text, or
at least was not in the portion that lies between your cursor and
the end of the text, MicroEMACS would not have moved the cursor,
and would have displayed the message
Not found
at the bottom of your screen.
R✓Re✓ev✓ve✓er✓rs✓se✓e s✓se✓ea✓ar✓rc✓ch✓h
The _✓s_✓e_✓a_✓r_✓c_✓h command <c✓ct✓tr✓rl✓l-S✓S>, useful as it is, can only
search forward through your text. To search backwards, use the
_✓r_✓e_✓v_✓e_✓r_✓s_✓e _✓s_✓e_✓a_✓r_✓c_✓h command <c✓ct✓tr✓rl✓l-R✓R>. Type <c✓ct✓tr✓rl✓l-R✓R>. MicroEMACS will
reply with the message
Reverse search [been there]:
at the bottom of your screen. The words in square brackets are
the words you entered earlier for the _✓s_✓e_✓a_✓r_✓c_✓h command; MicroEMACS
remembered them. If you wanted to search for b✓be✓ee✓en✓n t✓th✓he✓er✓re✓e again,
you would just press the carriage return. For now, however, type
MicroEMACS Screen Editor Tutorial Page 22
the word w✓wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n and press the carriage return.
Notice that the cursor has jumped so that it is under the
letter w✓w of the word w✓wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n in line 2. When you search for-
ward, the cursor will move to the _✓s_✓p_✓a_✓c_✓e _✓a_✓f_✓t_✓e_✓r the word you are
searching for, whereas when you reverse search the cursor will be
moved to the _✓f_✓i_✓r_✓s_✓t _✓l_✓e_✓t_✓t_✓e_✓r of the word you are searching for.
S✓Se✓ea✓ar✓rc✓ch✓h f✓fo✓or✓r p✓po✓or✓rt✓ti✓io✓on✓ns✓s o✓of✓f w✓wo✓or✓rd✓ds✓s
You do not have to search for an entire word; if you wish,
you can search for a portion of a word or even a single letter of
the alphabet. Note, however, that the _✓s_✓e_✓a_✓r_✓c_✓h and _✓r_✓e_✓v_✓e_✓r_✓s_✓e _✓s_✓e_✓a_✓r_✓c_✓h
commands do _✓n_✓o_✓t distinguish between upper-case and lower-case
letters--if you ask MicroEMACS to search for the letter 'I', it
will stop at every occurrence of 'i' as well.
Type <c✓ct✓tr✓rl✓l-S✓S>; when MicroEMACS asks what to search for, type
m✓me✓el✓lo✓on✓n. Note that the cursor jumps to the end of the word w✓wa✓at✓te✓er✓r-
m✓me✓el✓lo✓on✓n. Type <c✓ct✓tr✓rl✓l-S✓S> again, then a carriage return. Your cursor
now jumps to the comma after the word m✓me✓el✓lo✓on✓n in the next-to-last
line of the text. Now type <c✓ct✓tr✓rl✓l-R✓R>. The prompt will appear as
follows:
Reverse search [melon]:
Type a carriage return. The cursor jumped to the beginning of
the word m✓me✓el✓lo✓on✓n on line 15. Type <c✓ct✓tr✓rl✓l-R✓R> again, then a carriage
return. The cursor now has jumped to the letter m✓m in w✓wa✓at✓te✓er✓rm✓me✓el✓lo✓on✓n
on line 2.
When MicroEMACS searches, it does not distinguish between
whole words and portions of words; when you ask it to search for
m✓me✓el✓lo✓on✓n, it will find m✓me✓el✓lo✓on✓n whether it is a word by itself or
simply part of another word.
C✓Ca✓an✓nc✓ce✓el✓l a✓a c✓co✓om✓mm✓ma✓an✓nd✓d
The commands presented earlier to move the cursor or to
delete or kill text all execute immediately. Although this
speeds your editing, it also means that if you type a command by
mistake, it executes before you can stop it.
The _✓s_✓e_✓a_✓r_✓c_✓h and _✓r_✓e_✓v_✓e_✓r_✓s_✓e _✓s_✓e_✓a_✓r_✓c_✓h commands, however, wait for
you to respond to their prompts before they execute. If you type
<c✓ct✓tr✓rl✓l-S✓S> or <c✓ct✓tr✓rl✓l-R✓R> by accident, MicroEMACS will interrupt your
editing and wait patiently for you to initate a search that you
do not want to perform. You can evade this problem, however,
with the _✓c_✓a_✓n_✓c_✓e_✓l command <c✓ct✓tr✓rl✓l-G✓G>. This command tells MicroEMACS
to ignore the previous command.
MicroEMACS Screen Editor Tutorial Page 23
To see how this command works, type <c✓ct✓tr✓rl✓l-R✓R>. When the
prompt appears at the bottom of your screen, type <c✓ct✓tr✓rl✓l-G✓G>.
Three things happen: your terminal beeps, the characters ^G✓G ap-
pears at the bottom of your screen, and the cursor returns to
where it in your text was before you first typed <c✓ct✓tr✓rl✓l-R✓R>. The
<c✓ct✓tr✓rl✓l-R✓R> command has been cancelled, and you are free to continue
editing.
MicroEMACS Screen Editor Tutorial Page 24
8✓8. S✓Sa✓av✓vi✓in✓ng✓g T✓Te✓ex✓xt✓t a✓an✓nd✓d E✓Ex✓xi✓it✓ti✓in✓ng✓g
The last set of basic editing commands allow you to save
your text and exit from the MicroEMACS program. They are as
follows:
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S> Save text
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W> Write text to a new file
<c✓ct✓tr✓rl✓l-Z✓Z> Save text and exit
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C> Exit without saving text
You have used two of these commands already: the _✓s_✓a_✓v_✓e command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S> and the _✓q_✓u_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>, which
respectively allow you to save text or to exit from MicroEMACS
without saving text. (Commands that begin with <c✓ct✓tr✓rl✓l-X✓X> are
called _✓e_✓x_✓t_✓e_✓n_✓d_✓e_✓d commands; they are used frequently in the ad-
vanced editing to be covered in the second half of this
tutorial.)
W✓Wr✓ri✓it✓te✓e t✓te✓ex✓xt✓t t✓to✓o a✓a n✓ne✓ew✓w f✓fi✓il✓le✓e
If you wish, you may copy the text you are currently editing
to a text file other than the one from which you originally took
the text. Do this with the _✓w_✓r_✓i_✓t_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W>.
To test this command, type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W>. MicroEMACS
will display the following message on the bottom of your screen:
Write file:
MicroEMACS is asking for the name of the file to which you want
to write the text. Type t✓tw✓wa✓ai✓in✓n. MicroEMACS will reply:
[Wrote 16 lines]
The 16 lines of your text have been copied to a new file, called
t✓tw✓wa✓ai✓in✓n. Note that the status line at the bottom of your screen
has changed to read as follows:
-- MicroEMACS -- text1 -- File: twain ---------------------------
The significance of the change in file name will be discussed in
the second half of this tutorial.
Before you copy text to a new file, be sure that you have
not selected a file name that is already being used. If you do,
whatever is being stored under that file name will be erased, and
the text created with MicroEMACS will be stored in its place.
MicroEMACS Screen Editor Tutorial Page 25
S✓Sa✓av✓ve✓e t✓te✓ex✓xt✓t a✓an✓nd✓d e✓ex✓xi✓it✓t
Finally, the _✓s_✓t_✓o_✓r_✓e command <c✓ct✓tr✓rl✓l-Z✓Z> will save your text _✓a_✓n_✓d
move you out of the MicroEMACS program. To see how this works,
watch the bottom line of your terminal carefully and type <c✓ct✓tr✓rl✓l-
Z✓Z>. If you watched carefully, you would have seen that the mes-
sage
[Wrote 16 lines]
flickered on your screen, then the MS-DOS prompt appeared.
MicroEMACS has saved your text, and now you can issue commands
directly to MS-DOS.
MicroEMACS Screen Editor Tutorial Page 26
9✓9. B✓Ba✓as✓si✓ic✓c E✓Ed✓di✓it✓ti✓in✓ng✓g--C✓Co✓on✓nc✓cl✓lu✓us✓si✓io✓on✓n a✓an✓nd✓d S✓Su✓um✓mm✓ma✓ar✓ry✓y
This concludes the presentation of MicroEMACS's basic com-
mands. The second half of this tutorial will introduce you to
the advanced features of the MicroEMACS interactive screen
editor.
This section introduced the basics of using an interactive
screen editor, and presented the basic MicroEMACS editing com-
mands.
If you have mastered the commands and techniques in the
first half of this tutorial, you may have no need to work any
further, because you now can create a file, edit it, store it,
and recall it for further editing.
The tutorial gives instructions on how to invoke MicroEMACS,
how to name a text file, and the meaning of the information in
the MicroEMACS command line.
An exercise text is presented, and instructions on how to
type in the text and save it are given.
A number of commands can be used to move the cursor around
the screen. <c✓ct✓tr✓rl✓l-F✓F> and <e✓es✓sc✓c>F✓F move the cursor forward on the
line. <c✓ct✓tr✓rl✓l-B✓B> and <e✓es✓sc✓c>B✓B move the cursor backwards on the line.
<c✓ct✓tr✓rl✓l-P✓P> and <c✓ct✓tr✓rl✓l-N✓N> move the cursor to the previous or next
lines, respectively. <c✓ct✓tr✓rl✓l-A✓A> and <c✓ct✓tr✓rl✓l-E✓E> move the cursor to
the beginning or the end of the line, respectively. <e✓es✓sc✓c>< and
<e✓es✓sc✓c>> move the cursor to the beginning or end of the text,
respectively. <c✓ct✓tr✓rl✓l-V✓V> and <e✓es✓sc✓c>V✓V roll the screen forwards or
backwards, respectively.
You can erase text in a number of ways. <c✓ct✓tr✓rl✓l-D✓D> and <e✓es✓sc✓c>D✓D
erase text to the right. <d✓de✓el✓l> and <e✓es✓sc✓c><d✓de✓el✓l> erase text to the
left. <c✓ct✓tr✓rl✓l-K✓K> erases a line of text (or a portion of a line,
should the cursor be positioned in the middle of line). <c✓ct✓tr✓rl✓l-D✓D
and <d✓de✓el✓l> _✓d_✓e_✓l_✓e_✓t_✓e text, whereas <e✓es✓sc✓c>D✓D, <e✓es✓sc✓c><d✓de✓el✓l>, and <c✓ct✓tr✓rl✓l-K✓K>
_✓k_✓i_✓l_✓l text. <c✓ct✓tr✓rl✓l-Y✓Y> yanks back killed text.
Text can be block killed and moved from one part of your
text to another. To mark a block of text for killing, first type
<c✓ct✓tr✓rl✓l-@> at one end, then move the cursor to the other end.
Typing <c✓ct✓tr✓rl✓l-W✓W> kills the marked block of text, and <c✓ct✓tr✓rl✓l-Y✓Y>
yanks back killed text.
The following commands allow the user to block-kill and move
text. <c✓ct✓tr✓rl✓l-@> sets a mark; <c✓ct✓tr✓rl✓l-W✓W> deletes all text between
the mark and the cursor. <c✓ct✓tr✓rl✓l-Y✓Y> yanks back the block-killed
text wherever the cursor is positioned.
MicroEMACS Screen Editor Tutorial Page 27
Specific commands capitalize, uppercase, and lowercase
words: <e✓es✓sc✓c>C✓C capitalizes a word; <e✓es✓sc✓c>L✓L lowercases a word; and
<e✓es✓sc✓c>U✓U uppercases a word. <c✓ct✓tr✓rl✓l-T✓T> allows you to transpose
characters automatically, and <c✓ct✓tr✓rl✓l-L✓L> redraws a scrambled
screen.
Words or parts of words can be searched for either forwards
or backwards through the text: <c✓ct✓tr✓rl✓l-S✓S> searches forward, and
<c✓ct✓tr✓rl✓l-R✓R> searches backwards. <c✓ct✓tr✓rl✓l-G✓G> cancels these commands.
Finally, <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S> saves text to the file named on
the command line; <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C> allows the user to exit from
MicroEMACS without saving text; and <c✓ct✓tr✓rl✓l-Z✓Z> saves text and moves
you back into MS-DOS.
MicroEMACS Screen Editor Tutorial Page 28
1✓10✓0. A✓Ad✓dv✓va✓an✓nc✓ce✓ed✓d E✓Ed✓di✓it✓ti✓in✓ng✓g
The second half of this tutorial will introduce you to the
advanced features of the MicroEMACS interactive screen editor.
The techniques described here will help you execute complex
editing tasks with minimal trouble. You will be able to edit
more than one text at a time, display more than one text on your
screen at a time, enter a long or complicated phrase repeatedly
with only one keystroke, and give commands to the COHERENT system
without having to exit from MicroEMACS.
Before beginning, however, you must prepare a new text file-
-you were probably a little tired of watermelon by now, anyway.
Type the following command to the COHERENT system:
me text2
This text has been included on the diskettes that contained the
MWC86 compiler; there is no need to retype it. Within a moment,
t✓te✓ex✓xt✓t2✓2 will appear on your screen, as follows:
From the "Devil's Dictionary":
A penny saved is a penny to squander.
A man is known by the company he organizes.
A bird in the hand is worth what it will bring.
Think twice before you speak to a friend in need.
He laughs best who laughs least.
Least said is soonest disavowed.
Speak of the Devil and he will hear about it.
Of two evils choose to be the least.
Strike while your employer has a big contract.
Where there's a will there's a won't.
MicroEMACS Screen Editor Tutorial Page 29
1✓11✓1. A✓Ar✓rg✓gu✓um✓me✓en✓nt✓ts✓s
Most of the commands described in the first part of this
tutorial can be used with _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t_✓s. An argument is a subcommand
that tells MicroEMACS to execute a command repeatedly. With
MicroEMACS, arguments are introduced by striking <c✓ct✓tr✓rl✓l-U✓U>.
A✓Ar✓rg✓gu✓um✓me✓en✓nt✓ts✓s--d✓de✓ef✓fa✓au✓ul✓lt✓t v✓va✓al✓lu✓ue✓es✓s
By itself, <c✓ct✓tr✓rl✓l-U✓U> sets the argument at _✓f_✓o_✓u_✓r. To test
this, first type the _✓n_✓e_✓x_✓t _✓l_✓i_✓n_✓e command <c✓ct✓tr✓rl✓l-N✓N>. By itself, this
command moves the cursor down one line, from being under the F✓F in
the word F✓Fr✓ro✓om✓m on line 1, to being under the A✓A at the beginning of
line 2.
Now, type <c✓ct✓tr✓rl✓l-U✓U>. Note that MicroEMACS replies with the
message:
Arg: 4
Now type <c✓ct✓tr✓rl✓l-N✓N>. The cursor jumps down _✓f_✓o_✓u_✓r lines, from the
letter A✓A in line 2 to the letter H✓H of the word H✓He✓e at the begin-
ning of line 6.
Type <c✓ct✓tr✓rl✓l-U✓U>. The line at the bottom of the screen again
shows that the value of the argument is 4. Type <c✓ct✓tr✓rl✓l-U✓U> again.
Now the line at the bottom of the screen reads:
Arg: 16
Type <c✓ct✓tr✓rl✓l-U✓U> once more. The line at the bottom of the screen
now reads:
Arg: 64
Each time you type <c✓ct✓tr✓rl✓l-U✓U>, the value of the argument is _✓m_✓u_✓l-
_✓t_✓i_✓p_✓l_✓i_✓e_✓d by four. Type the _✓f_✓o_✓r_✓w_✓a_✓r_✓d command <c✓ct✓tr✓rl✓l-F✓F>. The cursor
has jumped ahead 64 characters, and is now under the period at
the end of line 7.
S✓Se✓el✓le✓ec✓ct✓ti✓in✓ng✓g v✓va✓al✓lu✓ue✓es✓s
Naturally, arguments do not have to be powers of four. You
can set the argument to whatever number you wish, simply by
typing <c✓ct✓tr✓rl✓l-U✓U> and then typing in the number you want.
For example, type <c✓ct✓tr✓rl✓l-U✓U>, and then type 3✓3. The line at
the bottom of the screen now reads:
Arg: 3
Type the _✓d_✓e_✓l_✓e_✓t_✓e command <e✓es✓sc✓c><d✓de✓el✓l>. MicroEMACS has deleted three
MicroEMACS Screen Editor Tutorial Page 30
words to the left.
Arguments can be used to increase the power of any _✓c_✓u_✓r_✓s_✓o_✓r
_✓m_✓o_✓v_✓e_✓m_✓e_✓n_✓t command, or any _✓k_✓i_✓l_✓l or _✓d_✓e_✓l_✓e_✓t_✓e command (with the sole
exception of <c✓ct✓tr✓rl✓l-W✓W>, the _✓b_✓l_✓o_✓c_✓k _✓k_✓i_✓l_✓l command).
D✓De✓el✓le✓et✓ti✓in✓ng✓g w✓wi✓it✓th✓h a✓ar✓rg✓gu✓um✓me✓en✓nt✓ts✓s--a✓an✓n e✓ex✓xc✓ce✓ep✓pt✓ti✓io✓on✓n
_✓K_✓i_✓l_✓l_✓i_✓n_✓g and _✓d_✓e_✓l_✓e_✓t_✓i_✓n_✓g were described in the first part of
this tutorial. They were said to differ in that text that was
killed was stored in a special area of the computer and could be
yanked back, whereas text that was deleted was erased outright.
However, there is one exception to this rule: any text that is
deleted using an argument can also be yanked back.
Move the cursor to the upper left-hand corner of the screen
by typing the _✓b_✓e_✓g_✓i_✓n _✓t_✓e_✓x_✓t command <e✓es✓sc✓c><. Then, type <c✓ct✓tr✓rl✓l-
U✓U><c✓ct✓tr✓rl✓l-D✓D>. Note that the word F✓Fr✓ro✓om✓m has disappeared. Move the
cursor to the right until it is between the words D✓De✓ev✓vi✓il✓l's✓s and
D✓Di✓ic✓ct✓ti✓io✓on✓na✓ar✓ry✓y, then type <c✓ct✓tr✓rl✓l-Y✓Y>. The word F✓Fr✓ro✓om✓m has been moved
within the line (although the spaces around it have not been
moved). This routine is very handy, and should greatly speed
your editing.
Remember, too, that unless you move the cursor between one
set of deletions and another, the computer's storage area will
not be erased, and you may yank back a jumble of text.
A✓Ar✓rg✓gu✓um✓me✓en✓nt✓ts✓s--e✓ex✓xe✓er✓rc✓ci✓is✓se✓es✓s
The next few exercises show how arguments can be used to
make your editing commands more powerful and efficient. Before
beginning, type <e✓es✓sc✓c>< to move the cursor to the upper left-hand
corner of your screen.
1✓1. Lowercase the word D✓De✓ev✓vi✓il✓l in line 8. Use no more than
three commands. (<ctrl-U> plus a number and command counts as
one command.)
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor, type <c✓ct✓tr✓rl✓l-U✓U>7✓7<c✓ct✓tr✓rl✓l-N✓N>, then
<c✓ct✓tr✓rl✓l-U✓U>3✓3 <e✓es✓sc✓c>F✓F. Then type <e✓es✓sc✓c>L✓L.
2✓2. Kill the last four lines of the text. Use no more than
two commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor, type <c✓ct✓tr✓rl✓l-A✓A>. Then type
<c✓ct✓tr✓rl✓l-U✓U><c✓ct✓tr✓rl✓l-K✓K>.
MicroEMACS Screen Editor Tutorial Page 31
3✓3. Make two copies of the killed lines at the top of your
text. Use no more than two commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor, type <e✓es✓sc✓c><. Then type
<c✓ct✓tr✓rl✓l-U✓U>2✓2<c✓ct✓tr✓rl✓l-Y✓Y>.
4✓4. Finally, delete the last 23 characters of the second
line of text. Use no more than four commands.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To move the cursor, type <e✓es✓sc✓c><, <c✓ct✓tr✓rl✓l-N✓N>, <c✓ct✓tr✓rl✓l-
E✓E>, and then <c✓ct✓tr✓rl✓l-U✓U>2✓23✓3<d✓de✓el✓l>.
MicroEMACS Screen Editor Tutorial Page 32
1✓12✓2. B✓Bu✓uf✓ff✓fe✓er✓rs✓s a✓an✓nd✓d F✓Fi✓il✓le✓es✓s
Before beginning this section, replace the mangled copy of
the text on your screen with a fresh copy. Type the _✓q_✓u_✓i_✓t command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C> to exit from MicroEMACS without saving the text;
once the MS-DOS prompt appears, return to MicroEMACS by typing:
me text2
Now look at the status line at the bottom of your screen. It
should appear as follows:
-- MicroEMACS -- text2 -- File: text2 ---------------------------
As noted in the first half of this tutorial, the name on the
left of the command line is that of the program. The name in the
middle is the name of the _✓b_✓u_✓f_✓f_✓e_✓r with which you are now working,
and the name to the right is the name of the _✓f_✓i_✓l_✓e from which you
read the text.
D✓De✓ef✓fi✓in✓ni✓it✓ti✓io✓on✓ns✓s
A _✓f_✓i_✓l_✓e is a text that has been given a name and has been
permanently stored in your computer. A _✓b_✓u_✓f_✓f_✓e_✓r is a portion of
the computer's memory that has been set aside for you to use,
that may be given a name, and into which you can put text tem-
porarily. You can put text into the buffer by typing it in from
your keyboard or by _✓c_✓o_✓p_✓y_✓i_✓n_✓g it from a file.
Unlike a file, a buffer is not permanent: if your computer
were to stop working (because you turned the power off, for ex-
ample), a file would not be affected, but a buffer would be
erased.
You must _✓n_✓a_✓m_✓e your files because you work with many dif-
ferent files, and you must have some way to tell them apart.
Likewise, MicroEMACS allows you to _✓n_✓a_✓m_✓e your buffer, because with
MicroEMACS you can work with more than one buffer at a time.
F✓Fi✓il✓le✓e a✓an✓nd✓d b✓bu✓uf✓ff✓fe✓er✓r c✓co✓om✓mm✓ma✓an✓nd✓ds✓s
MicroEMACS gives you a number of commands for handling files
and buffers. The following display summarizes them.
MicroEMACS Screen Editor Tutorial Page 33
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W> Write text to file
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-F✓F> Rename file
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R> Replace buffer with named file
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V> Switch buffer or create a new buffer
<c✓ct✓tr✓rl✓l-X✓X>K✓K Delete a buffer
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B> Display the status of each buffer
W✓Wr✓ri✓it✓te✓e a✓an✓nd✓d r✓re✓en✓na✓am✓me✓e c✓co✓om✓mm✓ma✓an✓nd✓ds✓s
The _✓w_✓r_✓i_✓t_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W> was reviewed earlier,
when the commands for saving text and exiting were discussed. To
review, <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W> changes the name of the file into which
the text is saved, and then writes a copy of the text into that
file.
Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W>. MicroEMACS responds by printing
Write file:
on the last line of your screen.
Type j✓ju✓un✓nk✓kf✓fi✓il✓le✓e, then a carriage return. Two things happen:
First, MicroEMACS writes the message
[Wrote 11 lines]
at the bottom of your screen. Second, the name of the file shown
on the status line has changed from t✓te✓ex✓xt✓t2✓2 to j✓ju✓un✓nk✓kf✓fi✓il✓le✓e.
MicroEMACS is reminding you that your text will be saved from now
on to the file j✓ju✓un✓nk✓kf✓fi✓il✓le✓e, unless you change the file name once
again.
The _✓f_✓i_✓l_✓e _✓r_✓e_✓n_✓a_✓m_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-F✓F> allows you rename
the file to which you are saving text, _✓w_✓i_✓t_✓h_✓o_✓u_✓t automatically
writing the text to it. Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-F✓F>. MicroEMACS will
reply with the prompt:
Name:
Now type t✓te✓ex✓xt✓t2✓2. Note that MicroEMACS does _✓n_✓o_✓t send you a message
that lines were written to the file; however, the name of the
file shown on the status line has changed from j✓ju✓un✓nk✓kf✓fi✓il✓le✓e back to
t✓te✓ex✓xt✓t2✓2. Until you change the name of the file again, every time
you save the text from this buffer, it will be copied into the
file t✓te✓ex✓xt✓t2✓2.
R✓Re✓ep✓pl✓la✓ac✓ce✓e t✓te✓ex✓xt✓t i✓in✓n a✓a b✓bu✓uf✓ff✓fe✓er✓r
MicroEMACS Screen Editor Tutorial Page 34
The _✓r_✓e_✓p_✓l_✓a_✓c_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R> allows you to replace
the text in your buffer with the text taken from file.
Suppose, for example, that you had edited t✓te✓ex✓xt✓t2✓2 and saved
it, and now wished to edit t✓te✓ex✓xt✓t1✓1. You could exit from
MicroEMACS, then re-invoke MicroEMACS for the file t✓te✓ex✓xt✓t2✓2, but
this is cumbersome. A more efficient way is to simply replace
the t✓te✓ex✓xt✓t2✓2 in your buffer with t✓te✓ex✓xt✓t1✓1.
Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R>. MicroEMACS replies with the prompt:
Read file:
Type t✓te✓ex✓xt✓t1✓1. Notice that t✓te✓ex✓xt✓t2✓2 has rolled away and been replaced
with t✓te✓ex✓xt✓t1✓1. Now, check the status line. Notice that although
the name of the _✓b_✓u_✓f_✓f_✓e_✓r is still t✓te✓ex✓xt✓t2✓2, the name of the _✓f_✓i_✓l_✓e has
changed to t✓te✓ex✓xt✓t1✓1. You can now edit t✓te✓ex✓xt✓t1✓1; when you save the
edited text, MicroEMACS will copy it back into the file t✓te✓ex✓xt✓t1✓1--
unless, of course, you choose to rename the file.
V✓Vi✓is✓si✓it✓ti✓in✓ng✓g a✓an✓no✓ot✓th✓he✓er✓r b✓bu✓uf✓ff✓fe✓er✓r
The last command of this set, the _✓v_✓i_✓s_✓i_✓t command <c✓ct✓tr✓rl✓l-
X✓X><c✓ct✓tr✓rl✓l-V✓V>, allows you to create more than one buffer at a time,
to jump from one buffer to another, and move text between buff-
ers. This powerful command has numerous features.
Before beginning, however, straighten up your buffer by
replacing t✓te✓ex✓xt✓t1✓1 with t✓te✓ex✓xt✓t2✓2. Type the _✓r_✓e_✓p_✓l_✓a_✓c_✓e command <c✓ct✓tr✓rl✓l-
X✓X><c✓ct✓tr✓rl✓l-R✓R>; when MicroEMACS replies by asking
Read file:
at the bottom of your screen, type t✓te✓ex✓xt✓t2✓2.
You should now have the file t✓te✓ex✓xt✓t2✓2 read into the buffer
named t✓te✓ex✓xt✓t2✓2.
Now, type the _✓v_✓i_✓s_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>. MicroEMACS
replies with the prompt
Visit file:
at the bottom of the screen. Now type t✓te✓ex✓xt✓t1✓1. Several things
will now happen. t✓te✓ex✓xt✓t2✓2 rolls off the screen and is replaced with
t✓te✓ex✓xt✓t1✓1; the status line changes to show that both the buffer name
and the file name are now t✓te✓ex✓xt✓t1✓1; and the message
[Read 16 lines]
appears at the bottom of the screen.
MicroEMACS Screen Editor Tutorial Page 35
This does _✓n_✓o_✓t mean that your previous buffer has been
erased, as it would have been had you used the _✓r_✓e_✓p_✓l_✓a_✓c_✓e command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R>. t✓te✓ex✓xt✓t2✓2 is still being kept alive in a buffer
and is available for editing; however, it is not being shown on
your screen at the present moment.
Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V> again, and when the prompt appears,
type t✓te✓ex✓xt✓t2✓2. t✓te✓ex✓xt✓t1✓1 scrolls off your screen and is replaced by
t✓te✓ex✓xt✓t2✓2, and the message
[Old buffer]
appears at the bottom of your screen. You have just jumped from
one buffer to another.
M✓Mo✓ov✓ve✓e t✓te✓ex✓xt✓t f✓fr✓ro✓om✓m o✓on✓ne✓e b✓bu✓uf✓ff✓fe✓er✓r t✓to✓o a✓an✓no✓ot✓th✓he✓er✓r
The _✓v_✓i_✓s_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V> not only allows you jump
from one buffer to another: it allows you to _✓m_✓o_✓v_✓e _✓t_✓e_✓x_✓t from one
buffer to another as well. The following example shows how you
can do this.
First, kill the first line of t✓te✓ex✓xt✓t2✓2 by typing the _✓k_✓i_✓l_✓l com-
mand <c✓ct✓tr✓rl✓l-K✓K> twice. This removes both the line of text _✓a_✓n_✓d the
space that it occupied; if you did not remove the space as well
the line itself, no new line will be created for the text when
you yank it back. Next, type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>; when the prompt
Visit file:
appears at the bottom of your screen, type t✓te✓ex✓xt✓t1✓1. When t✓te✓ex✓xt✓t1✓1 has
rolled onto your screen, type the _✓y_✓a_✓n_✓k _✓b_✓a_✓c_✓k command <c✓ct✓tr✓rl✓l-Y✓Y>.
The line you killed in t✓te✓ex✓xt✓t2✓2 has now been moved into t✓te✓ex✓xt✓t1✓1.
C✓Ch✓he✓ec✓ck✓ki✓in✓ng✓g b✓bu✓uf✓ff✓fe✓er✓r s✓st✓ta✓at✓tu✓us✓s
The number of buffers you can use at any one time is limited
only by the size of your computer. You should create only as
many buffers as you need to use immediately; this will help the
computer run efficiently.
To help you keep track of your buffers, MicroEMACS has the
_✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>. Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>.
Note that the status line has moved up to the middle of the of
the screen, and the bottom half of your screen has been replaced
with the following display:
C Size Buffer File
- ---- ------ ----
* 913 text1 text1
* 423 text2 text2
MicroEMACS Screen Editor Tutorial Page 36
This display is called the _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s _✓w_✓i_✓n_✓d_✓o_✓w. The use of win-
dows will be discussed more fully in the following section.
The letter C✓C over the leftmost column stands for C✓Ch✓ha✓an✓ng✓ge✓ed✓d.
An asterisk on a line indicates that the buffer has been changed,
while a space means that the buffer has not been changed. S✓Si✓iz✓ze✓e
indicates the buffer's size, in number of characters; B✓Bu✓uf✓ff✓fe✓er✓r
lists the buffer name, and F✓Fi✓il✓le✓e lists the file name.
Now, kill the second line of t✓te✓ex✓xt✓t1✓1 by typing the _✓k_✓i_✓l_✓l com-
mand <c✓ct✓tr✓rl✓l-K✓K>, then type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B> once again. Note that
size of the buffer t✓te✓ex✓xt✓t1✓1 has been reduced from 913 character to
881, to reflect the decrease in the size of the buffer.
To make this display disappear, type the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command
<c✓ct✓tr✓rl✓l-X✓X>1✓1. This command will be discussed in full in the next
section.
R✓Re✓en✓na✓am✓mi✓in✓ng✓g a✓a b✓bu✓uf✓ff✓fe✓er✓r
One more point must be covered with the _✓v_✓i_✓s_✓i_✓t command. MS-
DOS will not allow you to have more than one file with the same
name, in order to avoid confusion; for the same reason,
MicroEMACS will not allow you to have more than one _✓b_✓u_✓f_✓f_✓e_✓r with
the same name.
Ordinarily, when you visit a file that is not already in a
buffer, MicroEMACS will create a new buffer and give it the same
name that the file you are visiting has. However, if for some
reason you already have a buffer with the same name as the file
you wish to visit, MicroEMACS will stop and ask you to give a
new, different name to the buffer it is creating.
For example, suppose that you wanted to visit a new _✓f_✓i_✓l_✓e
called s✓sa✓am✓mp✓pl✓le✓e, perhaps from another directory, but you already
had a _✓b_✓u_✓f_✓f_✓e_✓r named s✓sa✓am✓mp✓pl✓le✓e. MicroEMACS would stop and give you
this prompt at the bottom of the screen:
Buffer name:
When you named this new buffer, MicroEMACS would proceed to read
t✓te✓ex✓xt✓t2✓2 into it.
D✓De✓el✓le✓et✓te✓e a✓a b✓bu✓uf✓ff✓fe✓er✓r
If you wish to delete a buffer, simply type the _✓d_✓e_✓l_✓e_✓t_✓e _✓b_✓u_✓f_✓f-
_✓e_✓r command <c✓ct✓tr✓rl✓l-X✓X>K✓K. This command will allow you only to delete
a buffer that is hidden, not one that is being displayed.
MicroEMACS Screen Editor Tutorial Page 37
Type <c✓ct✓tr✓rl✓l-X✓X>K✓K. MicroEMACS will give you the prompt:
Kill buffer:
Type t✓te✓ex✓xt✓t2✓2. Because you have changed the buffer, MicroEMACS
asks:
Discard changes [y/n]?
Type y✓y, and then type the _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>;
the buffer status window will no longer show the buffer t✓te✓ex✓xt✓t2✓2.
Note that although the prompt refers to _✓k_✓i_✓l_✓l_✓i_✓n_✓g a buffer, the
buffer is in fact _✓d_✓e_✓l_✓e_✓t_✓e_✓d and cannot be yanked back.
S✓Su✓um✓mm✓ma✓ar✓ry✓y
These buffer and file commands allow you to edit more than
one text at once, and move text between buffers and files. Just
how useful these commands are will be seen when you cover the
next topic, _✓w_✓i_✓n_✓d_✓o_✓w_✓s.
MicroEMACS Screen Editor Tutorial Page 38
1✓13✓3. W✓Wi✓in✓nd✓do✓ow✓ws✓s
Before beginning this section, it will be necessary to
create a new text file. Exit from MicroEMACS by typing the _✓q_✓u_✓i_✓t
command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>; then reinvoke MicroEMACS for the text
file t✓te✓ex✓xt✓t1✓1 with the command:
me text1
Now, copy t✓te✓ex✓xt✓t2✓2 into a buffer by typing the v✓vi✓is✓si✓it✓t command <c✓ct✓tr✓rl✓l-
X✓X><c✓ct✓tr✓rl✓l-V✓V>. When the message
Visit file:
appears at the bottom of your screen, type t✓te✓ex✓xt✓t2✓2. MicroEMACS
will read t✓te✓ex✓xt✓t2✓2 into a buffer, and show the message
[Read 11 lines]
at the bottom of your screen.
Finally, copy a new text, called t✓te✓ex✓xt✓t3✓3, into a buffer. Type
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V> again. When MicroEMACS asks which file to
visit, type t✓te✓ex✓xt✓t3✓3. The message
[Read 92 lines]
will appear at the bottom of your screen.
The first screenful of text will appear as follows:
MicroEMACS Screen Editor Tutorial Page 39
From "Gulliver's Travels":
I said there was a society of men among us,
bred up from their youth in the art of proving
by words multiplied for the purpose, that
white is black, and black is white, according
as they are paid. To this society all the rest
of the people are slaves.
"For example. If my neighbor hath a mind to my
cow, he hires a lawyer to prove that he ought to
have my cow from me. I must then hire another to
defend my right; it being against all rules of law
that any man should be allowed to speak for himself.
Now in this case, I who am the true owner lie under
two great disadvantages. First, my lawyer being
practiced almost from his cradle in defending
falsehood is quite out of his element when he would
be an advocate for justice, which as an office
unnatural, he always attempts with great awkwardness,
if not ill-will. The second disadvantage is that my
lawyer must proceed with great caution, or else he
will be reprimanded by the judges, and abhorred by
his brethren, as one who would lessen the practice
-- MicroEMACS -- text3 -- File: text3 -------------------
At this point, t✓te✓ex✓xt✓t3✓3 is on your screen, and t✓te✓ex✓xt✓t1✓1 and t✓te✓ex✓xt✓t2✓2
are hidden.
You could edit first one text and then another, while remem-
bering just how things stood with the texts that were hidden; but
it would be much easier if you could display all three texts on
your screen simultaneously. MicroEMACS allows you to do just
that, by using _✓w_✓i_✓n_✓d_✓o_✓w_✓s.
W✓Wi✓in✓nd✓do✓ow✓w c✓co✓om✓mm✓ma✓an✓nd✓ds✓s
A _✓w_✓i_✓n_✓d_✓o_✓w is a portion of your screen that is set aside and
can be manipulated independently from the rest of the screen.
MicroEMACS's commands for manipulating windows are summarized in
the following display.
MicroEMACS Screen Editor Tutorial Page 40
<c✓ct✓tr✓rl✓l-X✓X>2✓2 Create a window
<c✓ct✓tr✓rl✓l-X✓X>1✓1 Delete extra windows
<c✓ct✓tr✓rl✓l-X✓X>N✓N Move to next window
<c✓ct✓tr✓rl✓l-X✓X>P✓P Move to previous window
<c✓ct✓tr✓rl✓l-X✓X>Z✓Z Enlarge window
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-Z✓Z> Shrink window
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N> Scroll down
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P> Scroll up
<e✓es✓sc✓c>! Move within window
<c✓ct✓tr✓rl✓l-X✓X>B✓B Switch buffer
C✓Cr✓re✓ea✓at✓ti✓in✓ng✓g w✓wi✓in✓nd✓do✓ow✓ws✓s a✓an✓nd✓d m✓mo✓ov✓vi✓in✓ng✓g b✓be✓et✓tw✓we✓ee✓en✓n t✓th✓he✓em✓m
The best way to grasp how a window works is to create one
and work with it. Type the _✓c_✓r_✓e_✓a_✓t_✓e _✓a _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>2✓2.
Your screen is now divided into two parts, an upper and a
lower. The same text is in each part, and the command lines give
t✓te✓ex✓xt✓t3✓3 for the buffer and file names. Also, note that you still
have only one cursor, which is in the upper left-hand corner of
the screen.
The next step is to move from one window to another.
Type the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>N✓N. Your cursor has now
jumped to the upper left-hand corner of the _✓l_✓o_✓w_✓e_✓r window.
Type the _✓p_✓r_✓e_✓v_✓i_✓o_✓u_✓s _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>P✓P. Your cursor has
returned to the upper left-hand corner of the top window.
Now, type <c✓ct✓tr✓rl✓l-X✓X>2✓2 again. The window on the top of your
screen is now divided into two windows, for a total of three on
your screen. Type <c✓ct✓tr✓rl✓l-X✓X>2✓2 again. The window at the top of
your screen has again divided into two windows, for a total of
four.
It is possible to have as many as 11 windows on your screen
at one time, although each window will show only the control line
and one or two lines of text. Note that neither <c✓ct✓tr✓rl✓l-X✓X>2✓2 nor
<c✓ct✓tr✓rl✓l-X✓X>1✓1 can be used with arguments.
Now, type the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>1✓1. Note that all
extra windows have been eliminated, or _✓c_✓l_✓o_✓s_✓e_✓d.
E✓En✓nl✓la✓ar✓rg✓gi✓in✓ng✓g a✓an✓nd✓d s✓sh✓hr✓ri✓in✓nk✓ki✓in✓ng✓g w✓wi✓in✓nd✓do✓ow✓ws✓s
MicroEMACS Screen Editor Tutorial Page 41
When MicroEMACS creates a window, it divides the window in
which the cursor is positioned into half. You do not have to
leave the windows at the size MicroEMACS creates them, however.
If you wish, you may adjust the relative size of each window on
your screen, using the _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w and _✓s_✓h_✓r_✓i_✓n_✓k _✓w_✓i_✓n_✓d_✓o_✓w commands.
Type <c✓ct✓tr✓rl✓l-X✓X>2✓2 twice. Your screen is now divided into three
windows: two in the top half of your screen, and the third in
the bottom half.
Now, type the _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>Z✓Z. The window
at the top of your screen is now one line bigger, because it has
borrowed a line from the window below it. Type <c✓ct✓tr✓rl✓l-X✓X>Z✓Z again.
Once again, the top window has borrowed a line from the middle
window.
Now, type the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>N✓N, to move your
cursor into the middle window. Again, type the _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w
command <c✓ct✓tr✓rl✓l-X✓X>Z✓Z. The middle window has borrowed a line from
the bottom window, and is now one line larger.
The _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>Z✓Z allows you to enlarge
the window your cursor is in by borrowing lines from another win-
dow, provided that you do _✓n_✓o_✓t shrink that other window out of ex-
istence. Every window must have at least two lines in it, one
command line and one line of text.
The _✓s_✓h_✓r_✓i_✓n_✓k _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-Z✓Z> allows you to
decrease the size of a window. Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-Z✓Z>. The mid-
dle window is now one line smaller, and the bottom window is one
line larger, because the line borrowed earlier has been
returned.
The _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w and _✓s_✓h_✓r_✓i_✓n_✓k _✓w_✓i_✓n_✓d_✓o_✓w commands can also be
used with arguments introduced with <c✓ct✓tr✓rl✓l-U✓U>. However, remember
that MicroEMACS will not accept an argument that would shrink
another window out of existence.
D✓Di✓is✓sp✓pl✓la✓ay✓yi✓in✓ng✓g t✓te✓ex✓xt✓t w✓wi✓it✓th✓hi✓in✓n a✓a w✓wi✓in✓nd✓do✓ow✓w
Displaying text within the limited area of a window can
present special problems. The _✓v_✓i_✓e_✓w commands <c✓ct✓tr✓rl✓l-V✓V> and <e✓es✓sc✓c>V✓V
will roll window-sized portions of text up or down, but you may
become disoriented when a window shows only four or five lines of
text at a time. Therefore, three special commands are available
for displaying text within a window.
Two commands allow you to move your text by one line at a
time, or _✓s_✓c_✓r_✓o_✓l_✓l it: the _✓s_✓c_✓r_✓o_✓l_✓l _✓u_✓p command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N>, and
the _✓s_✓c_✓r_✓o_✓l_✓l _✓d_✓o_✓w_✓n command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P>.
MicroEMACS Screen Editor Tutorial Page 42
Type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N>. Note that the line at the top of
your window has vanished, a new line has appeared at the bottom
of your window, and the cursor is now at the beginning of what
had been the second line of your window.
Now type <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P>. The line at the top that had
vanished earlier has now returned, the cursor is at the beginning
of it, and the line at the bottom of the window has vanished.
These commands allow you to move forward in your text slowly, so
that you do not become disoriented.
Both of these commands can be used with arguments introduced
by <c✓ct✓tr✓rl✓l-U✓U>.
The third special movement command is the _✓m_✓o_✓v_✓e _✓w_✓i_✓t_✓h_✓i_✓n _✓w_✓i_✓n_✓d_✓o_✓w
command <e✓es✓sc✓c>!. This command moves the line your cursor is on to
the top of the window.
To try this out, move the cursor down three lines by typing
<c✓ct✓tr✓rl✓l-U✓U>3✓3<c✓ct✓tr✓rl✓l-N✓N>, then type <e✓es✓sc✓c>!. (Be sure to type an ex-
clamation point '!', not a numeral one '1', or nothing will hap-
pen.) Note that the line to which you had moved the cursor is
now the first line in the window, and three new lines have
scrolled up from the bottom of the window. You will find this
command to be very useful as you become more experienced at using
windows.
All three special movement commands can also be used when
your screen has no extra windows, although you will not need them
as much.
O✓On✓ne✓e b✓bu✓uf✓ff✓fe✓er✓r
Now that you have been introduced to the commands for
manipulating windows, you can begin to use windows to speed your
editing.
To begin with, scroll up the window you are in until you
reach the top line of your text. You can do this either by
typing the _✓s_✓c_✓r_✓o_✓l_✓l _✓u_✓p command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P> several times, or
by typing <e✓es✓sc✓c><.
Kill the first line of text with the _✓k_✓i_✓l_✓l command <c✓ct✓tr✓rl✓l-K✓K>.
Note that the first line of text has vanished from all three win-
dows. Now, type <c✓ct✓tr✓rl✓l-Y✓Y> to yank back the text you just killed.
The line has reappeared in all three windows.
The main advantage to displaying one buffer with more than
one window is that each window can display a different portion of
the text. This can be quite helpful if you are editing or moving
a large text.
MicroEMACS Screen Editor Tutorial Page 43
To demonstrate this, kill the last four lines at the end of
the text, and move them to the beginning of the text. First,
move to the end of the text in your present window by typing the
_✓e_✓n_✓d _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c>>. Kill the last four lines.
You could move the killed lines to the beginning of your
text by typing the _✓b_✓e_✓g_✓i_✓n_✓n_✓i_✓n_✓g _✓o_✓f _✓t_✓e_✓x_✓t command <e✓es✓sc✓c><; however, it
is more convenient simply to type the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-
X✓X>N✓N, which will move you to the beginning of the text as dis-
played in the next window. Note that MicroEMACS remembers a dif-
fernt cursor position for each window.
Now yank back the four killed lines by typing <c✓ct✓tr✓rl✓l-Y✓Y>. You
can observe simultaneously that the lines have been removed from
the end of your text and that they have been restored at the
beginning.
M✓Mu✓ul✓lt✓ti✓ip✓pl✓le✓e b✓bu✓uf✓ff✓fe✓er✓rs✓s
Windows are especially helpful when they display more than
one text. Remember that at present you are working with _✓t_✓h_✓r_✓e_✓e
texts, t✓te✓ex✓xt✓t1✓1, t✓te✓ex✓xt✓t2✓2, and t✓te✓ex✓xt✓t3✓3, although your screen is dis-
playing only t✓te✓ex✓xt✓t3✓3. To display a different text in a window, use
the _✓s_✓w_✓i_✓t_✓c_✓h _✓b_✓u_✓f_✓f_✓e_✓r command <c✓ct✓tr✓rl✓l-X✓X>B✓B.
Type <c✓ct✓tr✓rl✓l-X✓X>B✓B. When MicroEMACS asks
Use buffer:
at the bottom of the screen, type t✓te✓ex✓xt✓t1✓1. The text in your
present window will be replaced with t✓te✓ex✓xt✓t1✓1. Note that the com-
mand line in that window has changed, too, to reflect the fact
that the buffer and the file names are now t✓te✓ex✓xt✓t1✓1.
M✓Mo✓ov✓vi✓in✓ng✓g a✓an✓nd✓d c✓co✓op✓py✓yi✓in✓ng✓g t✓te✓ex✓xt✓t a✓am✓mo✓on✓ng✓g b✓bu✓uf✓ff✓fe✓er✓rs✓s
Copying text among buffers is now quite easy. To see how
this is done, kill the first line of t✓te✓ex✓xt✓t1✓1 by typing the <c✓ct✓tr✓rl✓l-K✓K>
command twice. Yank back the line immediately by typing <c✓ct✓tr✓rl✓l-
Y✓Y>. Remember, the line you killed has _✓n_✓o_✓t been erased from its
special storage area, and may be yanked back any number of times.
Now, move to the previous window by typing <c✓ct✓tr✓rl✓l-X✓X>P✓P, then
yank back the killed line by typing <c✓ct✓tr✓rl✓l-Y✓Y>. This technique
allows you to _✓c_✓o_✓p_✓y text from one window to another as well as to
_✓m_✓o_✓v_✓e it within a window.
C✓Ch✓he✓ec✓ck✓ki✓in✓ng✓g b✓bu✓uf✓ff✓fe✓er✓r s✓st✓ta✓at✓tu✓us✓s
MicroEMACS Screen Editor Tutorial Page 44
The _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s _✓c_✓o_✓m_✓m_✓a_✓n_✓d <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B> can be used when
you are already displaying more than one window on your screen.
When you want to remove the buffer status window, use either
the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>1✓1, or move your cursor into the
buffer status window using the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>N✓N and
replace it with another buffer by typing the _✓s_✓w_✓i_✓t_✓c_✓h _✓b_✓u_✓f_✓f_✓e_✓r com-
mand <c✓ct✓tr✓rl✓l-X✓X>B✓B.
S✓Sa✓av✓vi✓in✓ng✓g t✓te✓ex✓xt✓t f✓fr✓ro✓om✓m w✓wi✓in✓nd✓do✓ow✓ws✓s
The final step is to save the text from your windows and
buffers. Close the lower two windows with the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command
<c✓ct✓tr✓rl✓l-X✓X>1✓1. Remember, when you close a window, the text that it
displayed is still kept in a buffer that is _✓h_✓i_✓d_✓d_✓e_✓n from your
screen.
When you use the _✓s_✓a_✓v_✓e command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>, only the
text in the window in which the cursor is position will be writ-
ten to its file. If only one window is displayed on the screen,
the _✓s_✓a_✓v_✓e command will save only its text.
E✓Ex✓xe✓er✓rc✓ci✓is✓se✓es✓s
The following exercises will help you master the use of win-
dows and buffers. Before you begin, exit from MicroEMACS by
typing the _✓q_✓u_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>.
1✓1. Invoke MicroEMACS to edit t✓te✓ex✓xt✓t1✓1. Display t✓te✓ex✓xt✓t2✓2 in a
separate window. Copy the first four lines of t✓te✓ex✓xt✓t1✓1 to t✓te✓ex✓xt✓t2✓2.
Destroy t✓te✓ex✓xt✓t1✓1's buffer. Exit from MicroEMACS without saving the
text.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: To invoke MicroEMACS for t✓te✓ex✓xt✓t1✓1 type:
me text1
Before t✓te✓ex✓xt✓t2✓2 can be displayed on a separate window, it must be
copied into a buffer; type the _✓v_✓i_✓s_✓i_✓t command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>.
When MicroEMACS asks
Visit file:
type t✓te✓ex✓xt✓t2✓2.
When t✓te✓ex✓xt✓t2✓2 has been copied into its buffer, type the _✓c_✓r_✓e_✓a_✓t_✓e
_✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>2✓2, and read t✓te✓ex✓xt✓t1✓1 into the window with the
_✓s_✓w_✓i_✓t_✓c_✓h _✓b_✓u_✓f_✓f_✓e_✓r command <c✓ct✓tr✓rl✓l-X✓X>B✓B.
MicroEMACS Screen Editor Tutorial Page 45
To copy the top four lines from t✓te✓ex✓xt✓t1✓1 to t✓te✓ex✓xt✓t2✓2, first kill
the first four lines by typing <c✓ct✓tr✓rl✓l-U✓U>4✓4 <c✓ct✓tr✓rl✓l-K✓K>. Then yank
them back immediately by typing <c✓ct✓tr✓rl✓l-Y✓Y>; jump to t✓te✓ex✓xt✓t2✓2's window
by typing the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>N✓N, and finally yank
back the four killed lines again by typing <c✓ct✓tr✓rl✓l-Y✓Y>.
To destroy the buffer holding the copy of t✓te✓ex✓xt✓t1✓1, type the
_✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>1✓1, then type the _✓d_✓e_✓l_✓e_✓t_✓e _✓b_✓u_✓f_✓f_✓e_✓r command
<c✓ct✓tr✓rl✓l-X✓X>K✓K. When MicroEMACS asks
Kill buffer:
type t✓te✓ex✓xt✓t1✓1. When MicroEMACS asks
Discard changes [y/n]?
type y✓y.
Finally, to exit without saving text, type the _✓q_✓u_✓i_✓t command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>.
2✓2. Display t✓te✓ex✓xt✓t1✓1, t✓te✓ex✓xt✓t2✓2, and t✓te✓ex✓xt✓t3✓3 in three equally sized
windows. Scroll through each text in turn. Check the status of
the buffers to see if any were altered, then exit from MicroEMACS
without saving the texts.
S✓So✓ol✓lu✓ut✓ti✓io✓on✓n: Invoke MicroEMACS to edit t✓te✓ex✓xt✓t1✓1 by typing
me text1
and then copy t✓te✓ex✓xt✓t2✓2 and t✓te✓ex✓xt✓t3✓3 into buffers by using the _✓v_✓i_✓s_✓i_✓t
command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V> twice.
Create three windows on your screen by typing the _✓c_✓r_✓e_✓a_✓t_✓e _✓a
_✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>2✓2 twice.
Move among the windows by using the _✓n_✓e_✓x_✓t _✓w_✓i_✓n_✓d_✓o_✓w command
<c✓ct✓tr✓rl✓l-X✓X>N✓N and the _✓p_✓r_✓e_✓v_✓i_✓o_✓u_✓s _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>P✓P; then make
sure the windows are of even size by using the _✓e_✓n_✓l_✓a_✓r_✓g_✓e _✓w_✓i_✓n_✓d_✓o_✓w
command <c✓ct✓tr✓rl✓l-X✓X>Z✓Z and the _✓s_✓h_✓r_✓i_✓n_✓k _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-
Z✓Z>.
Read t✓te✓ex✓xt✓t1✓1 and t✓te✓ex✓xt✓t2✓2 into your extra windows by using the
_✓s_✓w_✓i_✓t_✓c_✓h _✓b_✓u_✓f_✓f_✓e_✓r command <c✓ct✓tr✓rl✓l-X✓X>B✓B.
To scroll through the texts, use the _✓s_✓c_✓r_✓o_✓l_✓l _✓d_✓o_✓w_✓n command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N> and the _✓s_✓c_✓r_✓o_✓l_✓l _✓u_✓p command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P>.
When you are done scrolling, check the buffers' status with
the _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s command <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>. Close the buffer
status window by typing the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>1✓1.
MicroEMACS Screen Editor Tutorial Page 46
Exit from MicroEMACS by typing the _✓q_✓u_✓i_✓t command <c✓ct✓tr✓rl✓l-
X✓X><c✓ct✓tr✓rl✓l-C✓C>.
MicroEMACS Screen Editor Tutorial Page 47
1✓14✓4. K✓Ke✓ey✓yb✓bo✓oa✓ar✓rd✓d M✓Ma✓ac✓cr✓ro✓os✓s
Another helpful feature of MicroEMACS is that it allows you
to create a _✓k_✓e_✓y_✓b_✓o_✓a_✓r_✓d _✓m_✓a_✓c_✓r_✓o.
Before beginning this section, reinvoke MicroEMACS to edit
t✓te✓ex✓xt✓t3✓3 by typing the command
me text3
The term _✓m_✓a_✓c_✓r_✓o means a number of commands or characters that
are bundled together. Although MicroEMACS allows you to create
only one macro at a time, this macro can consist of the most com-
mon _✓p_✓h_✓r_✓a_✓s_✓e or the most common _✓c_✓o_✓m_✓m_✓a_✓n_✓d or _✓s_✓e_✓r_✓i_✓e_✓s _✓o_✓f _✓c_✓o_✓m_✓m_✓a_✓n_✓d_✓s that
you use while editing your file.
K✓Ke✓ey✓yb✓bo✓oa✓ar✓rd✓d m✓ma✓ac✓cr✓ro✓o c✓co✓om✓mm✓ma✓an✓nd✓ds✓s
The keyboard macro commands are as follows:
<c✓ct✓tr✓rl✓l-X✓X>( Begin macro collection
<c✓ct✓tr✓rl✓l-X✓X>) End macro collection
<c✓ct✓tr✓rl✓l-X✓X>E✓E Execute macro
To begin to create a macro, type the _✓b_✓e_✓g_✓i_✓n _✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-
X✓X>(. Be sure to type an open parenthesis '(', not a numeral '9'.
MicroEMACS will reply with the message
[Start macro]
Type the following phrase:
interactive screen editor
Then type the _✓e_✓n_✓d _✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-X✓X>). Be sure you type a
close parenthesis ')', not a numeral '0'. MicroEMACS will reply
with the message
[End macro]
Move your cursor down two lines and execute the macro by typing
the _✓e_✓x_✓e_✓c_✓u_✓t_✓e _✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-X✓X>E✓E. The phrase you typed into
the macro has been inserted into your text.
R✓Re✓ep✓pl✓la✓ac✓ci✓in✓ng✓g a✓a m✓ma✓ac✓cr✓ro✓o
To replace this macro with another, go through the same
process. Type <c✓ct✓tr✓rl✓l-X✓X>(. Then type the _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s command
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>, and type <c✓ct✓tr✓rl✓l-X✓X>). Remove the buffer status
window by typing the _✓o_✓n_✓e _✓w_✓i_✓n_✓d_✓o_✓w command <c✓ct✓tr✓rl✓l-X✓X>1✓1.
MicroEMACS Screen Editor Tutorial Page 48
Now execute your keyboard macro by typing the e✓ex✓xe✓ec✓cu✓ut✓te✓e m✓ma✓ac✓cr✓ro✓o
command <c✓ct✓tr✓rl✓l-X✓X>E✓E. The _✓b_✓u_✓f_✓f_✓e_✓r _✓s_✓t_✓a_✓t_✓u_✓s command has executed once
more.
Note that whenever you exit from MicroEMACS, your keyboard
macro is erased, and must be retyped when you return.
S✓Se✓ea✓ar✓rc✓ch✓h a✓an✓nd✓d r✓re✓ep✓pl✓la✓ac✓ce✓e
You can create a _✓s_✓e_✓a_✓r_✓c_✓h _✓a_✓n_✓d _✓r_✓e_✓p_✓l_✓a_✓c_✓e routine by bundling a
number of commands together under a keyboard macro.
Suppose, for example, that you wished to replace the word
l✓la✓aw✓wy✓ye✓er✓r throughout t✓te✓ex✓xt✓t3✓3 with the word d✓do✓oc✓ct✓to✓or✓r. First, type the
_✓b_✓e_✓g_✓i_✓n _✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-X✓X>(. Then, type <c✓ct✓tr✓rl✓l-S✓S>; when
MicroEMACS gives you the prompt
Search:
type l✓la✓aw✓wy✓ye✓er✓r. This command will execute, and move the cursor to
the space immediately after the first occurrence of the word
l✓la✓aw✓wy✓ye✓er✓r.
Use the <d✓de✓el✓l> key to erase the word l✓la✓aw✓wy✓ye✓er✓r. Type the word
d✓do✓oc✓ct✓to✓or✓r in its place.
Now that the search and replace routine is set, type the _✓e_✓n_✓d
_✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-X✓X>). To execute the macro, first install an
argument by typing <c✓ct✓tr✓rl✓l-U✓U> three times; then type the _✓e_✓x_✓e_✓c_✓u_✓t_✓e
_✓m_✓a_✓c_✓r_✓o command <c✓ct✓tr✓rl✓l-X✓X>E✓E. Although the word l✓la✓aw✓wy✓ye✓er✓r does not occur
64 times in this text, you must make your argument large enough
so that your search and replace macro will find every occurrence
of the word you want to change.
MicroEMACS will search through your file for the word
l✓la✓aw✓wy✓ye✓er✓r, and replace it with d✓do✓oc✓ct✓to✓or✓r. The cursor will stop after
the last occurrence of l✓la✓aw✓wy✓ye✓er✓r, and the message
Not found
will appear at the bottom of your screen. This message means
that although MicroEMACS continued to search for l✓la✓aw✓wy✓ye✓er✓r through
the end of your file, it could not find it again.
MicroEMACS Screen Editor Tutorial Page 49
1✓15✓5. S✓Se✓en✓nd✓di✓in✓ng✓g C✓Co✓om✓mm✓ma✓an✓nd✓ds✓s t✓to✓o M✓MS✓S-D✓DO✓OS✓S
The last command you need to learn is the _✓p_✓r_✓o_✓g_✓r_✓a_✓m _✓i_✓n_✓t_✓e_✓r-
_✓r_✓u_✓p_✓t command <c✓ct✓tr✓rl✓l-X✓X>!. T✓Th✓hi✓is✓s c✓co✓om✓mm✓ma✓an✓nd✓d
a✓al✓ll✓lo✓ow✓ws✓s y✓yo✓ou✓u t✓to✓o i✓in✓nt✓te✓er✓rr✓ru✓up✓pt✓t y✓yo✓ou✓ur✓r e✓ed✓di✓it✓ti✓in✓ng✓g, g✓gi✓iv✓ve✓e a✓a c✓co✓om✓mm✓ma✓an✓nd✓d d✓di✓ir✓re✓ec✓ct✓tl✓ly✓y t✓to✓o
M✓MS✓S-D✓DO✓OS✓S, a✓an✓nd✓d t✓th✓he✓en✓n r✓re✓es✓su✓um✓me✓e e✓ed✓di✓it✓ti✓in✓ng✓g w✓wi✓it✓th✓ho✓ou✓ut✓t a✓af✓ff✓fe✓ec✓ct✓ti✓in✓ng✓g y✓yo✓ou✓ur✓r t✓te✓ex✓xt✓t i✓in✓n
a✓an✓ny✓y w✓wa✓ay✓y.
The command <c✓ct✓tr✓rl✓l-X✓X>! allows you to send _✓o_✓n_✓e command to the
operating system. To see how this command works, type <c✓ct✓tr✓rl✓l>!.
Note that the prompt M✓MS✓S-D✓DO✓OS✓S c✓co✓om✓mm✓ma✓an✓nd✓d:
has appeared at the bottom of your screen. Type d✓di✓ir✓r. Observe
that the directory's table of contents scrolls across your
screen. To return to your editing, simply type a carriage
return. The _✓i_✓n_✓t_✓e_✓r_✓r_✓u_✓p_✓t command <c✓ct✓tr✓rl✓l-C✓C> suspends editing in-
definitely, and allows you to send an unlimited number of com-
mands to the operating system.
If you were to type <c✓ct✓tr✓rl✓l-C✓C>, MS-DOS would reply by seeking
the file c✓co✓om✓mm✓ma✓an✓nd✓d.c✓co✓om✓m in your root directory.
Once you know this information and wish to experiment with
the _✓i_✓n_✓t_✓e_✓r_✓r_✓u_✓p_✓t command, type <c✓ct✓tr✓rl✓l-C✓C>. W✓Wh✓he✓en✓n t✓th✓he✓e M✓MS✓S-D✓DO✓OS✓S p✓pr✓ro✓om✓mp✓pt✓t a✓ap✓p-
p✓pe✓ea✓ar✓rs✓s, t✓ty✓yp✓pe✓e t✓ti✓im✓me✓e. MS-DOS will print the time and day, and ask
you if you want to change them. If you do not, exit from this
routine by simply typing a carriage return, then return to your
MicroEMACS program by typing e✓ex✓xi✓it✓t.
MicroEMACS Screen Editor Tutorial Page 50
16. Advanced Editing--Conclusion and Summary
This concludes the tutorial for the MicroEMACS interactive
screen editor. Congratulations on your diligence in working
through it! MicroEMACS and its related EMACS -based screen
editors are now at your command, and you have acquired a skill
that will serve you well for the rest of your life.
This section introduced the advanced editing techniques
available with MicroEMACS.
Arguments can be used with most cursor movement commands and
all text deletion commands to set the number of times they ex-
ecute. The command <ctrl-U> introduces arguments. The default
for <ctrl-U> is 4, with each subsequent entry of <ctrl-U> mul-
tiplying the argument by 4. The value of an argument can be
changed by typing <ctrl-U>, followed by an integer.
Text is edited in a buffer, and is copied into a file when
the user issues the save commands <ctrl-X><ctrl-S> or the write
command <ctrl-X><ctrl-W>. <ctrl-X> <ctrl-F> will rename the file;
and <ctrl-X> <ctrl-W> renames the file and automatically copies
text to it.
MicroEMACS can handle more than one buffer at a time
<ctrl-X><ctrl-V> moves you from one buffer to another, and allows
you to create a buffer should the buffer you requested not al-
ready exist.
<ctrl-X><ctrl-R> replaces the text in a buffer with the text
drawn from a specified file. <ctrl-X>K deletes a buffer.
<ctrl-X><ctrl-B> displays information on the status of each
buffer.
The screen can be divided into windows, which can display
the same buffer or different buffers. <ctrl-X>2 creates a
window by dividing the present window in half, whereas the com-
mand <ctrl-X>1 erases all extra windows.
<ctrl_X>Z and <ctrl-X><ctrl-Z> enlarge and shrink windows,
respectively. <ctrl-X>N moves the cursor to the next, or lower,
window, whereas <ctrl-X>P moves the cursor to the previous win-
dow.
<ctrl-X><ctrl-N>, <ctrl-X><ctrl-P>, and <esc>! respectively
scroll the window up, scroll it down, and move the line on which
the cursor rests to the top of the window. <ctrl-X>B displays a
different buffer within a window.
MicroEMACS allows you to create a keyboard macro that ex-
ecutes a set of commands or inserts text. <ctrl-X>( opens the
macro, <ctrl-X>) closes it, and <ctrl-X>E executes it.
MicroEMACS Screen Editor Tutorial Page 51
<ctrl-C> interrupts the operation of MicroEMACS, so that the
user can send commands directly to the COHERENT system. You can
resume working with MicroEMACS by typing <ctrl-D>.
MicroEMACS Screen Editor Tutorial Page 52
1✓17✓7. S✓Su✓um✓mm✓ma✓ar✓ry✓y o✓of✓f C✓Co✓om✓mm✓ma✓an✓nd✓ds✓s
<c✓ct✓tr✓rl✓l-@> Set mark at current position.
<c✓ct✓tr✓rl✓l-A✓A> Move to start of line.
<c✓ct✓tr✓rl✓l-B✓B> (B✓Back) Move backward by characters.
<c✓ct✓tr✓rl✓l-C✓C> Suspend MicroEMACS and move temporarily to MS-DOS.
<c✓ct✓tr✓rl✓l-D✓D> (D✓Delete) Delete next character.
<c✓ct✓tr✓rl✓l-E✓E> (E✓End) Move to end of line.
<c✓ct✓tr✓rl✓l-F✓F> (F✓Forward) Move forward by characters.
<c✓ct✓tr✓rl✓l-G✓G> Abort from a command.
<c✓ct✓tr✓rl✓l-K✓K> (K✓Kill) With no argument, kill from current position
to end of line; if at the end, kill the newline.
With argument 0, kill from beginning of line to cur-
rent position. Otherwise, kill _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t lines for-
ward (if positive) or backward (if negative).
<c✓ct✓tr✓rl✓l-L✓L> Redraw the screen.
<c✓ct✓tr✓rl✓l-N✓N> (N✓Next) Move to next line.
<c✓ct✓tr✓rl✓l-P✓P> (P✓Previous) Move to previous line.
<c✓ct✓tr✓rl✓l-R✓R> (R✓Reverse) Prompt for search string and search back-
ward.
<c✓ct✓tr✓rl✓l-S✓S> (S✓Search) Prompt for search string and search for-
ward.
<c✓ct✓tr✓rl✓l-T✓T> (T✓Transpose) Transpose the characters before and after
the current position.
<c✓ct✓tr✓rl✓l-U✓U> Specify an argument, as described above.
<c✓ct✓tr✓rl✓l-V✓V> Move forward by pages.
<c✓ct✓tr✓rl✓l-W✓W> Kill text from current position to mark.
<c✓ct✓tr✓rl✓l-X✓X>( Begin a macro definition. MicroEMACS collects every-
thing typed until the end of the definition for sub-
sequent repeated execution.
<c✓ct✓tr✓rl✓l-X✓X>) End a macro definition.
MicroEMACS Screen Editor Tutorial Page 53
<c✓ct✓tr✓rl✓l-X✓X>1✓1 Display only the current window.
<c✓ct✓tr✓rl✓l-X✓X>2✓2 Split the current window; usually followed by <c✓ct✓tr✓rl✓l-
X✓X>B✓B or <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>.
<c✓ct✓tr✓rl✓l-X✓X>B✓B (B✓Buffer) Prompt for a buffer name and display the
buffer in the current window.
<c✓ct✓tr✓rl✓l-X✓X>E✓E (E✓Execute) Execute macro.
<c✓ct✓tr✓rl✓l-X✓X>K✓K (K✓Kill) Prompt for a buffer name and delete it.
<c✓ct✓tr✓rl✓l-X✓X>N✓N (N✓Next) Move to next window.
<c✓ct✓tr✓rl✓l-X✓X>P✓P (P✓Previous) Move to previous window.
<c✓ct✓tr✓rl✓l-X✓X>Z✓Z Enlarge the current window by _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t lines.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>
Create a window that shows the size, buffer name, and
file name for each buffer, and also shows whether a
buffer has been changed. IP <c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>
Prompt, and exit unconditionally if 'Y' given.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-F✓F>
(F✓File name) Prompt for a file name for current buff-
er.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N>
Move current window down by _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t lines.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P>
Move current window up by _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t lines.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R>
(R✓Read) Prompt for a file name, delete current buffer,
and read the file.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>
(S✓Save) Save current buffer to the associated file.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>
(V✓Visit) Prompt for a file name and display the file
in the current window.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W>
(W✓Write) Prompt for a file name and write the current
buffer to it.
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-Z✓Z>
Shrink current window by _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t lines.
MicroEMACS Screen Editor Tutorial Page 54
<c✓ct✓tr✓rl✓l-Y✓Y> (Y✓Yank) Copy the kill buffer into text at the current
position; set current position to the end of the new
text.
<c✓ct✓tr✓rl✓l-Z✓Z> Save current buffer to associated file and exit.
<D✓De✓el✓l> If no argument, delete the previous character.
Otherwise, kill _✓a_✓r_✓g_✓u_✓m_✓e_✓n_✓t previous characters.
<e✓es✓sc✓c>! Move current line to a position in the window given
by _✓A_✓r_✓g_✓u_✓m_✓e_✓n_✓t; the position is in lines from the top if
positive, in lines from the bottom if negative, and
the center of the window if 0.
<e✓es✓sc✓c>> Move to end of buffer.
<e✓es✓sc✓c>< Move to beginning of buffer.
<e✓es✓sc✓c>B✓B (B✓Back) Move backward by words.
<e✓es✓sc✓c>C✓C (C✓Capitalize) Capitalize the next word.
<e✓es✓sc✓c>D✓D (D✓Delete) Kill the next word.
<e✓es✓sc✓c><D✓De✓el✓l> Kill the previous word.
<e✓es✓sc✓c>F✓F (F✓Forward) Move forward by words.
<e✓es✓sc✓c>L✓L (L✓Lower) Convert the next word to lower case.
<e✓es✓sc✓c>U✓U (U✓Upper) Convert the next word to upper case.
<e✓es✓sc✓c>V✓V Move backward by pages.
MicroEMACS Screen Editor Tutorial Page 55
I✓In✓nd✓de✓ex✓x
<c✓ct✓tr✓rl✓l-@>: 17
<c✓ct✓tr✓rl✓l-A✓A>: 7
<c✓ct✓tr✓rl✓l-B✓B>: 7
<c✓ct✓tr✓rl✓l-C✓C>: 49
<c✓ct✓tr✓rl✓l-D✓D>: 12, 49
<c✓ct✓tr✓rl✓l-E✓E>: 8
<c✓ct✓tr✓rl✓l-F✓F>: 8
<c✓ct✓tr✓rl✓l-G✓G>: 22
<c✓ct✓tr✓rl✓l-H✓H>: 13
<c✓ct✓tr✓rl✓l-L✓L>: 20
<c✓ct✓tr✓rl✓l-N✓N>: 8
<c✓ct✓tr✓rl✓l-P✓P>: 8
<c✓ct✓tr✓rl✓l-R✓R>: 21
<c✓ct✓tr✓rl✓l-S✓S>: 21
<c✓ct✓tr✓rl✓l-T✓T>: 20
<c✓ct✓tr✓rl✓l-U✓U>: 29
<c✓ct✓tr✓rl✓l-V✓V>: 9
<c✓ct✓tr✓rl✓l-W✓W>: 17
<c✓ct✓tr✓rl✓l-X✓X>: 24
<c✓ct✓tr✓rl✓l-X✓X>(: 47
<c✓ct✓tr✓rl✓l-X✓X>): 47
<c✓ct✓tr✓rl✓l-X✓X>1✓1: 36, 40
<c✓ct✓tr✓rl✓l-X✓X>2✓2: 40
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-B✓B>: 35
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-C✓C>: 11, 15
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-F✓F>: 33
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-N✓N>: 41
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-P✓P>: 41
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-R✓R>: 34
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-S✓S>: 11
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-V✓V>: 34
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-W✓W>: 24, 33
<c✓ct✓tr✓rl✓l-X✓X><c✓ct✓tr✓rl✓l-Z✓Z>: 41
<c✓ct✓tr✓rl✓l-X✓X>B✓B: 42
<c✓ct✓tr✓rl✓l-X✓X>E✓E: 47
<c✓ct✓tr✓rl✓l-X✓X>K✓K: 36
<c✓ct✓tr✓rl✓l-X✓X>N✓N: 40
<c✓ct✓tr✓rl✓l-X✓X>P✓P: 40
<c✓ct✓tr✓rl✓l-X✓X>Z✓Z: 41
<c✓ct✓tr✓rl✓l-Y✓Y>: 14
<c✓ct✓tr✓rl✓l-Z✓Z>: 25
<c✓ct✓tr✓rl✓l>: 2
<d✓de✓el✓l>: 13
<e✓es✓sc✓c>: 2
<e✓es✓sc✓c>!: 42
<e✓es✓sc✓c><: 9
<e✓es✓sc✓c><d✓de✓el✓l>: 13
<e✓es✓sc✓c>>: 9
<e✓es✓sc✓c>B✓B: 7
<e✓es✓sc✓c>C✓C: 19
<e✓es✓sc✓c>D✓D: 13
<e✓es✓sc✓c>F✓F: 8
MicroEMACS Screen Editor Tutorial Page 56
<e✓es✓sc✓c>L✓L: 19
<e✓es✓sc✓c>U✓U: 19
<e✓es✓sc✓c>V✓V: 9
<N✓Nu✓um✓m L✓Lo✓oc✓ck✓k>: 7
<return>: 7, 21
me command: 5
MicroEMACS:
advanced editing with: 28
basic editing with: 2
beginning to use: 3
exiting from: 24
file size: 4
invoking: 5
quit without saving text: 15
saving text: 11
advanced editing--summary: 50
arguments: 29
cannot be used with create window commands: 40
default value: 29
deleting: 30
exercises: 30
increasing or decreasing: 29
selecting values: 29
with enlarge window command: 41
with scrolling commands: 42
with shrink window command: 41
arrow keys: 7
ascii table: 2
backspace key: 7
backwards:
end of line: 7
one space: 7
one word: 7
basic editing--summary: 26
begin macro command: 47
beginning of text command: 9
block kill command: 17
buffer:
definition: 32
delete: 36
exercises: 44
for killed text: 16
how differs from file: 32
move text from one b. to another: 35
name on command line: 6
naming: 32
need unique names: 36
number allowed at one time: 35
prompting for new name: 36
replace with named file: 34
status command: 35
status window: 35
switch b.: 34
with windows: 42
MicroEMACS Screen Editor Tutorial Page 57
buffer status command: 35
use with windows: 44
buffer status window: 35
cancel a command: 22
capitalization: 19
command line:
buffer name: 6
changed file name: 24
file name: 6
file name changed: 33
interpretation: 5
commands:
arguments: 29
block kill text: 16
buffer status: 35
cancel: 22
capitalization: 19
cursor movement display: 7
exiting from MicroEMACS: 24
file and buffer: 32
giving c. to MS-DOS: 49
increase power: 29
keyboard macros: 47
lowercase: 19
me: 5
move text: 16
program interrupt: 49
redraw screen: 20
saving text: 24
searching: 21
switch buffers: 34
uppercase: 19
window manipulation: 39
control characters: 2
control key: 2
location: 2
copying sample texts: 4
copying text: 43
cursor movement:
arrow keys: 7
back: 7
beginning of text: 9
end of text: 9
exercises: 10
forwards: 8
left: 7
line position: 8
move within window: 42
next line: 8
previous line: 8
right: 8
screen down: 9
screen up: 9
scroll down: 41
MicroEMACS Screen Editor Tutorial Page 58
scroll up: 41
strategy: 9
delete buffer command: 36
delete key: 13
delete text:
exercises: 14
versus killing: 12
deleting with arguments: 30
display:
capitalization, transpose, and redraw: 19
commands: 21
file and buffer commands: 32
keyboard macro commands: 47
kill and move commands: 16
killing and deleting: 12
movement commands: 7
text and exiting: 24
window commands: 39
document:
beginning a new d.: 5
e✓ed✓d:
to break down files: 4
to cement files together: 4
end macro command: 47
end of text command: 9
enlarge window command: 41
with arguments: 41
erase text: 12
by line: 14
deletion of spaces: 13
erasing spaces: 13
to the left: 13
to the right: 12
escape key: 2
location: 2
execute macro command: 47
exercises:
arguments: 30
buffers: 44
cursor movement: 10
delete text: 14
kill text: 14
windows: 44
yank back text: 14
exiting from MicroEMACS: 24
extended commands: 24
file:
definition: 32
how differs from buffer: 32
name on command line: 6
naming: 32
rename: 33
replace buffer with named f.: 34
size: 4
MicroEMACS Screen Editor Tutorial Page 59
with windows: 42
write to new f.: 33
forwards:
end of line: 8
one space: 8
one word: 8
interactive editor:
definition: 2
keyboard macros: 47
kill text:
block: 17
exercises: 14
versus deleting: 12
lowercase text: 19
macros: 47
message:
[End macro]: 47
[Mark set]: 17
[New file]: 5
[Old buffer]: 35
[Read XX lines]: 5, 34, 38
[Start macro]: 47
[Wrote XX lines]: 11, 24-25, 33
Arg: X: 29
Buffer name:: 36
Cannot allocate XX bytes: 4
Discard changes [y/n]?: 37, 45
Kill buffer:: 37
MS-DOS command: 49
Name:: 33
Not found: 21, 48
Quit [y/n]?: 15
Read file:: 34
Reverse search [xxxxx]:: 21-22
Search:: 21
Use buffer:: 43
Visit file:: 34-35, 38
Write file:: 24, 33
meta characters: 2
MicroEMACS:
does support arrow keys: 7
move:
cursor: 7
text: 16
text from one buffer to another: 35
within window command: 42
multiple copying of killed text: 16
next line command: 8
number lock key: 7
number of buffers allowed: 35
previous line command: 8
program interrupt command: 49
quit without saving text: 11
quitting MicroEMACS: 11
MicroEMACS Screen Editor Tutorial Page 60
redraw screen: 20
rename file: 33
replace buffer with named file: 34
restore (yank back) killed text: 14
reverse search: 21
sample texts:
copying: 4
saving text: 11, 24
screen backwards movement: 9
screen down command: 9
screen editor:
definition: 2
screen forward movement: 9
screen redraw: 20
screen up command: 9
scroll down command: 41
with arguments: 42
scroll up command: 41
with arguments: 42
search:
forward: 21
reverse: 21
shrink window command: 41
with arguments: 41
store command: 25
summary:
advanced editing: 50
basic editing: 26
switch buffer command: 42
tab key: 2
text:
block kill: 17
capitalize: 19
erase: 12
erase to left: 13
erase to right: 12
kill by lines: 14
lowercase: 19
move: 16
move from one buffer to another: 35
multiple copying of killed t.: 16
restore (yank back): 14
saving: 24
saving t.: 11
uppercase: 19
write to new file: 24
yank back (restore): 14
transpose characters: 20
uppercase text: 19
visit command: 34
creating new file: 38
moving text from one buffer to another: 35
prompting for buffer name: 36
window:
MicroEMACS Screen Editor Tutorial Page 61
buffer status: 35
buffer status command use: 44
commands, table 7: 39
copying text among: 43
definition: 39
enlarge: 41
exercises: 44
move within: 42
moving text among: 43
multiple w.: 40
number possible: 40
one w.: 40
saving text: 44
scroll down: 41
scroll up: 41
shifting between: 40
shrink: 41
use with editing: 42
using multiple buffers: 42
write text to new file: 24, 33
yank back text: 14, 30
exercises: 14
|<c✓ct✓tr✓rl✓l-X✓X>!: 49